我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

1. nginx负载均衡

图片.png

2.哈希算法的逻辑示例

图片.png

使用

upstream tomcats {
             ip_hash;
         server 192.168.121.166:8080 weight=1 max_conns=2;
         server 192.168.121.167:8080 weight=2 max_conns=2;
         server 192.168.121.167:8088 weight=5 max_conns=2;
      }

3.详细了解哈希算法是如何实现的

可以查看nginx的源码,找到nginx的软件目录,我本地的在home//nginx-1.18/src/http/下的.c中

图片.png

可以查询到的值为3,而从这个关键代码中我们大致可以了解到,其实这个hash值是根据前三个IP段来计算的,比如192.168.1.12、192.168.1.13、192.168.1.14。而nginx计算出来的hash值,是基于192 168 1这个IP段来计算的。所以如果在本地虚拟机中使用这种负载均衡方式,那么192.168.1.12、192.168.1.13、192.168.1.14这三个IP,其实访问的是一台机器。

4.注意事项

如果集群中某个服务器发生故障,我们想将其从 nginx 集群配置中移除,那么我们不能简单地删除那一行,例如 192.168.121.167:8080 =2 =2;。如果直接删除,会导致 nginx 的哈希算法重新计算,用户的 或者缓存就会失效。所以如果我们这里不用这台服务器,那么就直接比对为 down,也就是 192.168.121.167:8080 down

这就是你所需要做的。

upstream tomcats {
             ip_hash;
         server 192.168.121.166:8080 weight=1 max_conns=2;
         server 192.168.121.167:8080 weight=2 max_conns=2;
         server 192.168.121.167:8088 weight=5 max_conns=2;
      }

5.那么第四点提到的问题该如何解决呢?

如果某台机器出现问题,必须重新计算哈希值,用户的缓存会话就丢失了,那么用户的请求时间就会长很多,这时候我们就需要使用一致性哈希算法了:

图片.png

这样的哈希算法有一个好处,就是可以保证在服务器发生故障的情况下,绝大多数用户不会遇到任何问题。以前因为节点不足,节点数量减少,所以每次请求都要重新计算,分配到哪个节点,但是一致性哈希算法不会,它只会影响到靠近更新节点的一小部分位置。比如节点 3 因为故障被移除,那么上游的两个用户请求就会到节点 4,其他用户不会发生改变。

二维码
扫一扫在手机端查看

本文链接:https://by928.com/1884.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线