本篇文章为大家展示了 C#中怎么实现分布式负载均衡,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
创新互联主营常宁网站建设的网络公司,主营网站建设方案,成都APP应用开发,常宁h5小程序设计搭建,常宁网站营销推广欢迎常宁等地区企业咨询
假如想要进行负载平衡,实际上建议直接购买云服务或硬件设备,这样基本上不需要进行任何配置和学习就可以很容易地进行负载平衡。别跟风各种反代 nginx,说白了有钱人买设备比自己鼓吹靠谱多了,没钱买设备用云服务也很划算。
在进行负载均衡之前,最重要的一点是,您的网站应用是否已准备好进行负载均衡,比方说,您是否已进行 Sessionless,请求处理时间是否均匀(在某些情况下,几秒钟处理一个请求?是否在代码中存在依赖全局锁(static对象上的锁)。
如果以上几点没有做好,比如严重的Session依赖,几十秒的请求处理时间长,一秒几百的处理时间短,代码中各种静态非线程安全的共享资源。建议你先重构系统,再考虑负载均衡。
做负载均衡,一般来说,刚开始已经做了一些工作,最基本的就是去除Session依赖,避免全局锁。然后配置机器密钥。如果无法释放会话相关性,则使用状态服务器模式。当然,直接释放Session依赖更好。
然后就是考验。IIS的WebFarm可以使用多个进程来处理请求,但是因为是在一台机器上测试,所以很多情况无法测试(比如machineKey不一致导致的问题)。
现在真的是一个非常好的时机,因为云计算已经非常成熟,所以负载均衡测试可以直接扔到云上去测试。如果您购买作为按需实例,您可能会购买几个最便宜的虚拟机,然后使用云负载平衡测试。经过一周的测试,要花两三百块钱才能上。这个测试和实际情况几乎没有区别。如果将来部署在云上,根本没有区别。
经过云测试,基本确定系统能够在负载均衡环境下稳定运行。此时可以对一些高度怀疑可能出现问题的地方进行补充测试,比如回发到不同的服务器,登录和注销到不同的服务器等等。这时可以直接打开Fiddler override去掉DNS解析,手动指定服务器测试各种可能出错的场景。
这些都完成之后,就可以进行压力测试了,有些问题只有在压力下才会暴露出来。同时,我们可以测试当增加负载节点时,压力阈值是否可以线性增加。如果不是线性增长,说明网站架构有问题,不能很好的利用负载均衡。
完成所有这些之后,有必要在将负载平衡器部署到生产环境之前对其进行监控和测试。也就是说,确认负载均衡器可以自动发现节点故障,自动迁移节点。高级负载平衡器还可以根据节点负载情况动态分配请求,尽可能将同一客户端的请求分配给同一服务器。这些都是需要测试的,而不是发现各种设备都是在线服务器挂机后才配置的。
完成之后可以进行压力测试,一些问题在压力下暴露出来。另外,还可以测试增加负载节点时所能承受的压力阈值是否线性增长,如果不是,说明一个网站架构不能很好地利用负载均衡。
上述内容就是 C#中怎么实现分布式负载均衡,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。