haprox動態下線後端主機
阿新 • • 發佈:2017-07-02
nbsp 最好 sock 主機 建議 apr 而不是 redis 好的
haproxy可以很好的支持主機下線,不需要編輯配置文件,也不需要重新reload服務,通過本身的socket發送指令即可;
當你的應用程序是高可用狀態,一般部署的是>2的,這個時候就可以通過haproxy進行負載,分別分發到後端的兩臺應用
主機A和B。 當你的應用需要叠代上線的時候,你可以通過指令先下線A,此時B在提供服務,A上線完成後再添加進去,
然後再下線B主機,B主機升級完成後再添加進去提供服務。
這樣上線的好處在於服務不會中斷,上線時間你不用等到半夜12點了,解脫了自己的時間,當然我說的這類應用是後端
接口層面無狀態的。如果有session保持之類的得另想辦法,最好是程序上支持,建議開發將程序的session放在redis數據庫
或者memcache數據庫裏面進行緩存,而不是放在本地或者通過運維的手段進行session的高可用(這樣太low了)。
haproxy動態上下線主機的方法(非常簡單):
# haproxy 動態上下線主機 ad_server 後端集群名字 api_1_234 集群中的一臺主機名字
# 下線後端集群ad_server中的api_1_234服務器 echo "disable server ad_server/api_1_234" |socat stdio /tmp/haproxy # 開啟後端集群ad_server中的api_1_234服務器 echo "enable server ad_server/api_1_234" |socat stdio /tmp/haproxy
有了這個指令可以寫在jenkins裏面了,先進行主機下線之後,然後自動上線,自動上線主機,你所需要做的就是在jenkins
頁面上點擊一下就可以了,可以說是非常的自動化了已經。
haprox動態下線後端主機