利用nginx做后台服务器的动态加载和负载均衡

这里,我们没有利用nginx的反向代理和负载策略来实现,而是自定义负载均衡策略,同时动态的响应后台服务器的注册消息,以实现后台服务器的动态增减,和负载的合理均衡。

1、动态注册

我们在nginx里面增加一个location /reg{}的模块,然后在其中响应来自后台服务器的注册信号,注册信息可以缓存住,也可以写数据库,看需要。在收到注册信号后对每一个服务器的注册信号设定一个定时器,在收到注册信号后对每一个服务器的注册信息增加当前并保存。这里我们没有做定时器,而是在收到每台服务器心跳后会更新服务器列表,新鲜的优先级高,比较旧的优先级低,在同等情况下,优先采用新鲜的服务器。过时到一定程度,将从服务器列表中删除该服务器,并记录到日志。

这样的情况下,我们如果需要增加删减服务器将会变得很容易。这里尤其要说一下删减服务器。如果碰到新鲜的服务器刚刚发送完心跳包后变崩溃,优先级又将这台服务器排至比较高的位置,这样岂不是会导致反馈给前台的服务器失效?我们是这样做,在确定完服务器后,再反馈给前台时会对服务器进行一次握手操作,比如http交互,确认当前服务器做好了应答的准备。


2、负载均衡

nginx本身就有很多种负载均衡策略,比如ip_hash,权重等等。这里我们要说说自身如何根据业务需要进行定制负载均衡。

我们采用ngx_lua模块,方便我们使用Lua脚本对nginx.conf进行修改和扩展。服务器信息我们一般存在一个table中,利用table的自定义sort(our_table,sortfunction)法则,可以轻易的按业务进行排序。


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值