1.1 Gossip通信開銷
Gossip消息的通信開銷是P2P分布式系統帶來的第一個副作用。有一篇關于Gossip通俗易懂的文章《Life in a Redis Cluster: Meet and Gossip with your neighbors》。Redis為叢集操作的消息通信單獨開辟一個TCP通道,交換二進制消息:
PING/PONG:Cluster的心跳,每個結點每秒随機PING幾個結點。結點的選擇方法是:超過cluster-node-timeout一半的時間還未PING過或未收到PONG的結點,是以這個參數會極大影響叢集内部的消息通信量。心跳包除了結點自己的資料外,還包含一些其他結點(叢集規模的1/10)的資料,這也是“Gossip流言”的含義。
MEET/PONG:隻有MEET後的受信結點才能加入到上面的PING/PONG通信中。
關于Gossip的問題不可避免,我們隻能通過參數調整和優化,在通信效率和開銷之間找到一個平衡點。因為筆者還未搭建過大規模的Redis Cluster叢集,關于叢集的性能和參數調優還不能給出建議,留到積累足夠經驗再做整理吧。
本文作者:geelou
本文來自雲栖社群合作夥伴rediscn,了解相關資訊可以關注redis.cn網站。