搭建Redis集群的過程中,執(zhí)行到cluster create <ip>:<port> ... 的時(shí)候,發(fā)現(xiàn)程序在阻塞,顯示:Waiting for the cluster to join 的字樣,然后就無休無盡的等待...
沒有開放集群總線端口
根據(jù)字樣的提示健蕊,在等待集群的創(chuàng)建。嗯踢俄?這是什么原因缩功?大部分情況下這是因?yàn)榧和ㄐ诺亩丝跊]有開放!
先說下解決方案:
開放Redis服務(wù)的兩個(gè)TCP端口都办。譬如Redis客戶端連接端口為6379嫡锌,而Redis服務(wù)在集群中還有一個(gè)叫集群總線端口,其端口為客戶端連接端口加上10000琳钉,即 6379 + 10000 = 16379势木。所以開放每個(gè)集群節(jié)點(diǎn)的客戶端端口和集群總線端口才能成功創(chuàng)建集群!
成功搭建集群
問題解決了槽卫,則反思一下跟压,客戶端端口和集群總線端口有什么區(qū)別呢?
客戶端端口:客戶端訪問Redis服務(wù)器的端口
集群總線端口:用二進(jìn)制協(xié)議(gossip協(xié)議)的點(diǎn)對(duì)點(diǎn)集群通信的端口歼培。用于節(jié)點(diǎn)的失敗偵測(cè)震蒋、配置更新、故障轉(zhuǎn)移授權(quán)躲庄,等等查剖。
總而言之,客戶端端口提供的是外部客戶端訪問服務(wù)的端口噪窘;而集群總線端口是提供集群內(nèi)部各個(gè)Redis服務(wù)之間的通信笋庄。