利用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.conf) HTTP負載均衡/TCP負載均衡負載NginxHTTPTCP
- Nginx負載均衡反向代理伺服器Nginx負載伺服器
- Nginx負載均衡模式Nginx負載模式
- Nginx 做負載均衡的幾種輪詢策略Nginx負載
- 利用 consul+nginx-upsync 實現動態負載Nginx負載
- nginx負載均衡原理分析到手動編寫簡易負載均衡器Nginx負載
- Nginx負載均衡高可用Nginx負載
- 012.Nginx負載均衡Nginx負載
- Nginx負載均衡詳解Nginx負載
- nginx實現負載均衡Nginx負載
- nginx實現兩臺服務負載均衡Nginx負載
- Nginx伺服器的使用與反向代理負載均衡Nginx伺服器負載
- Nginx搭建反向代理負載均衡和web快取伺服器Nginx負載Web快取伺服器
- Nginx—tomcat負載均衡動靜分離群集NginxTomcat負載
- 負載均衡之--Nginx、LVS、HAProxy負載Nginx
- Nginx/Httpd負載均衡tomcat配置Nginxhttpd負載Tomcat
- Nginx+Tomcat部署負載均衡NginxTomcat負載
- nginx學習之負載均衡Nginx負載
- Nginx服務系列——負載均衡Nginx負載
- 使用Nginx配置TCP負載均衡NginxTCP負載
- 使用nginx進行負載均衡Nginx負載
- docker下nginx反向代理和負載均衡配置DockerNginx負載
- nginx反向大理和負載均衡以及高可用Nginx負載
- nginx反向代理負載均衡帶你突破單臺伺服器的瓶頸Nginx負載伺服器
- 伺服器負載均衡伺服器負載
- Nginx 動靜分離與負載均衡的實現Nginx負載
- LVS和Nginx實現負載均衡功能的比較Nginx負載
- Nginx實現簡單的負載均衡Nginx負載
- 【Nginx】Windows平臺下配置Nginx服務實現負載均衡NginxWindows負載
- Consul-template+nginx實現自動負載均衡Nginx負載
- nginx+php 實現代理與負載均衡 (1臺nginx,2臺php)NginxPHP負載
- nginx反向代理和負載均衡策略實戰案例Nginx負載