小编给大家分享一下C#如何实现Nginx平滑加权轮询算法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
创新互联建站长期为近1000家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为崇阳企业提供专业的成都网站设计、网站建设,崇阳网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。
具体内容如下
代码很简单,算法很经典!
1. 定义实体类
public struct ServerConfig { //初始权重 public int Weight {get;set;} //当前权重 public int Current {get;set;} //服务名称 public string Name {get;set;} }
2. 算法
public static int NextServerIndex(ServerConfig[] serverConfigArray) { int index = -1; int total = 0; int size = serverConfigArray.Count(); for(int i = 0; i< size; i++) { serverConfigArray[i].Current += serverConfigArray[i].Weight; total += serverConfigArray[i].Weight; if (index == -1 || serverConfigArray[index].Current < serverConfigArray[i].Current) { index = i; } } serverConfigArray[index].Current -= total; return index; }
3.调用
static void Main(string[] args) { var sv = new ServerConfig[] { new ServerConfig{Name="A", Weight = 4}, new ServerConfig{Name="B", Weight = 2}, new ServerConfig{Name="C", Weight = 1} }; int index = 0; int sum = sv.Sum(m => m.Weight); for(int i=0; iC#是什么
C#是一个简单、通用、面向对象的编程语言,它由微软Microsoft开发,继承了C和C++强大功能,并且去掉了一些它们的复杂特性,C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程从而成为.NET开发的首选语言,但它不适用于编写时间急迫或性能非常高的代码,因为C#缺乏性能极高的应用程序所需要的关键功能。
看完了这篇文章,相信你对“C#如何实现Nginx平滑加权轮询算法”有了一定的了解,如果想了解更多相关知识,欢迎关注创新互联行业资讯频道,感谢各位的阅读!
文章标题:C#如何实现Nginx平滑加权轮询算法
浏览路径:http://cdkjz.cn/article/jsjpoe.html