openstack newton版本
rabbitmq 3.6.5
pika 0.10.0
rabbimq日誌報錯信息:”Missed heartbeats from client, timeout: 60s”
最終heartbeat選取原則:rabbitmq建立連接時會從服務端和客戶端的配置中挑選最小值作為該連接的心跳超時時間。
rabbitmq在3.5.5以前的版本heartbeat默認為580s,3.5.5之後才改為60s,這樣就就出現了很多這樣問題。
因此,可考慮修改heartbeat,改為200s甚至更大的值,這會很大程度上減少該問題發生。
方案1雖然可以很大程度避免問題出現,但總歸不能完全消除。
因此可以考慮改用tcp的keepalive機制:
3 .配置linux系統的tcp keepalive參數,由傳輸層做tcp連接保活檢測,效率更高,且與應用層服務互不幹擾,但靈活性差(內核級別配置,全局生效)。配置方式可參考: blogs.com/mingao/p/10626297.html
/pika/pika/pull/956