利用nginx做後臺伺服器的動態載入和負載均衡
這裡,我們沒有利用nginx的反向代理和負載策略來實現,而是自定義負載均衡策略,同時動態的響應後臺伺服器的註冊訊息,以實現後臺伺服器的動態增減,和負載的合理均衡。
1、動態註冊
我們在nginx裡面增加一個location /reg{}的模組,然後在其中響應來自後臺伺服器的註冊訊號,註冊資訊可以快取住,也可以寫資料庫,看需要。在收到註冊訊號後對每一個伺服器的註冊訊號設定一個定時器,在收到註冊訊號後對每一個伺服器的註冊資訊增加當前並儲存。這裡我們沒有做定時器,而是在收到每臺伺服器心跳後會更新伺服器列表,新鮮的優先順序高,比較舊的優先順序低,在同等情況下,優先採用新鮮的伺服器。過時到一定程度,將從伺服器列表中刪除該伺服器,並記錄到日誌。
這樣的情況下,我們如果需要增加刪減伺服器將會變得很容易。這裡尤其要說一下刪減伺服器。如果碰到新鮮的伺服器剛剛傳送完心跳包後變崩潰,優先順序又將這臺伺服器排至比較高的位置,這樣豈不是會導致反饋給前臺的伺服器失效?我們是這樣做,在確定完伺服器後,再反饋給前臺時會對伺服器進行一次握手操作,比如http互動,確認當前伺服器做好了應答的準備。
2、負載均衡
nginx本身就有很多種負載均衡策略,比如ip_hash,權重等等。這裡我們要說說自身如何根據業務需要進行定製負載均衡。
我們採用ngx_lua模組,方便我們使用Lua指令碼對nginx.conf進行修改和擴充套件。伺服器資訊我們一般存在一個table中,利用table的自定義sort(our_table,sortfunction)法則,可以輕易的按業務進行排序。
相關文章
- nginx+consul做動態負載均衡(docker)Nginx負載Docker
- Nginx 兩臺伺服器配置負載均衡!!!Nginx伺服器負載
- 負載均衡和動態負載均衡分別是什麼?-VeCloud負載Cloud
- NGINX 負載均衡Nginx負載
- 【Nginx】負載均衡Nginx負載
- nginx負載均衡Nginx負載
- Nginx入門(2)反向代理和負載均衡Nginx負載
- 【Nginx】Nginx反向代理和負載均衡部署Nginx負載
- Nginx負載均衡反向代理伺服器Nginx負載伺服器
- Nginx負載均衡模式Nginx負載模式
- Nginx--負載均衡Nginx負載
- nginx 負載均衡搭建Nginx負載
- Nginx負載均衡策略Nginx負載
- 解析 Nginx 負載均衡Nginx負載
- Nginx 做負載均衡的幾種輪詢策略Nginx負載
- nginx負載均衡原理分析到手動編寫簡易負載均衡器Nginx負載
- Nginx負載均衡詳解Nginx負載
- Nginx負載均衡高可用Nginx負載
- nginx實現負載均衡Nginx負載
- 配置apache和nginx的tomcat負載均衡ApacheNginxTomcat負載
- nginx實現兩臺服務負載均衡Nginx負載
- Nginx伺服器的使用與反向代理負載均衡Nginx伺服器負載
- Nginx搭建反向代理負載均衡和web快取伺服器Nginx負載Web快取伺服器
- Nginx/ZooKeeper 負載均衡的差異Nginx負載
- Nginx 的 TCP 負載均衡介紹NginxTCP負載
- Nginx服務系列——負載均衡Nginx負載
- 使用Nginx配置TCP負載均衡NginxTCP負載
- nginx學習之負載均衡Nginx負載
- 使用nginx進行負載均衡Nginx負載
- 使用nginx負載均衡nodejsNginx負載NodeJS
- Nginx 負載均衡原理解讀Nginx負載
- [Open Source] 負載均衡之Nginx負載Nginx
- Nginx負載均衡配置說明Nginx負載
- Nginx + IIS 實現負載均衡Nginx負載
- 伺服器負載均衡伺服器負載
- 利用 consul+nginx-upsync 實現動態負載Nginx負載
- docker下nginx反向代理和負載均衡配置DockerNginx負載
- nginx反向代理負載均衡帶你突破單臺伺服器的瓶頸Nginx負載伺服器