zoukankan      html  css  js  c++  java
  • nginx+wcf负载均衡实验

    准备资料

    1、三台服务器,其中两台服务器(192.168.0.27、192.168.0.28)在IIS部署WCF服务,一台服务器(192.168.0.30)安装nginx;

    2、http://nginx.org/en/download.html下载nginx;

    3、所有的客户端Client的Hosts文件中增加映射:192.168.0.30 cluster.com.

    安装配置nginx

    把下载的nginx压缩包放在30服务器,然后解压,双击nginx.exe即可安装,安装完成后,打开conf文件夹里面的nginx配置文件,加入内容,如图:

    192.168.0.28:9100和192.168.0.27是WCF的部署地址,要带上端口号,默认80则不用。

    至此nginx安装配置完成。

    项目开发

    做一个简单的实验,只要两个项目就好了,一个WCF服务,一个Console客户端,项目图如下:

    其中NginxWcfService就只有一个服务Service1,我们改造一下默认的GetData方法:

    public string GetData(int value)
            {
                string ip = "";
    
                System.Net.IPAddress[] address = System.Net.Dns.GetHostAddresses(System.Net.Dns.GetHostName());
                if (address != null)
                {
                    foreach (var item in address)
                    {
                        if (item.AddressFamily.Equals(AddressFamily.InterNetwork))
                        {
                            ip = item.ToString();
                            break;
                        }
                    }
                }
    
                return string.Format("You entered: {0},当前 request 由 server={1} 返回.", value, ip);
            }

    就是返回当前服务器的IP地址。

    然后编译发布到27、28两台服务器,地址分别是http://192.168.0.27/NginxWcfService/Service1.svc和http://192.168.0.28:9100/NginxWcfService/Service1.svc。

    客户端项目NginxConsole,添加服务引用http://cluster.com/NginxWcfService/Service1.svc,然后多次调用服务,即可看到效果,代码如下:

    static void Main(string[] args)
            {
                for (int i = 0; i < 100; i++)
                {
                    ServiceReference1.Service1Client client = new ServiceReference1.Service1Client();
                    var data = client.GetData(i);
                    Console.WriteLine(data);
    
                    System.Threading.Thread.Sleep(1000);
                }
                Console.Read();
            }

    效果如图:

    这就是最简单的负载均衡,一个nginx就可以搞定了。

  • 相关阅读:
    27 Spring Cloud Feign整合Hystrix实现容错处理
    26 Spring Cloud使用Hystrix实现容错处理
    25 Spring Cloud Hystrix缓存与合并请求
    24 Spring Cloud Hystrix资源隔离策略(线程、信号量)
    23 Spring Cloud Hystrix(熔断器)介绍及使用
    22 Spring Cloud Feign的自定义配置及使用
    21 Spring Cloud使用Feign调用服务接口
    20 Spring Cloud Ribbon配置详解
    19 Spring Cloud Ribbon自定义负载均衡策略
    18 Spring Cloud Ribbon负载均衡策略介绍
  • 原文地址:https://www.cnblogs.com/tingqianzhu/p/8670440.html
Copyright © 2011-2022 走看看