外网访问redis cluster的大坑
昨天下午3-4點(diǎn)開始一直到夜里12點(diǎn)半,在加上今天上午的兩個(gè)半小時(shí)算是勉強(qiáng)搞定了。真鬧心啊
 首先我用的是oracle oci(云端的計(jì)算實(shí)例)搭建了一個(gè)三臺機(jī)器(3主,3從,每一對主從在一臺機(jī)器)的redis cluster 集群,redis版本是最新的5…0.7
接下來我描述一下問題的細(xì)節(jié)
 三臺機(jī)器A(port: 7001,7002)B(port: 7003,7004), C(port: 7005,7006),在云端要把security list對應(yīng)的端口7000-7006,17000-17006(redis集群后臺通信用,)打開。
 集群創(chuàng)建完畢后,顯示成功。
因?yàn)槲蚁朐诒镜販y試,所以需要外網(wǎng)訪問redis集群
此處為止注意點(diǎn)
 1 redis 配置文件中 把bind取消,然后把保護(hù)模式關(guān)閉
2 創(chuàng)建集群的時(shí)候用外網(wǎng)ip
 redis-cli --cluster create 外網(wǎng)Ip:7001 外網(wǎng)Ip:7002 外網(wǎng)Ip:7003 外網(wǎng)Ip:7004 外網(wǎng)Ip:7005
外網(wǎng)Ip:7006 --cluster-replicas
 上面是從網(wǎng)上查到的,照做肯定沒問題,如果不做的話是否可以我沒試過(太累了,不試驗(yàn)了)
 奇怪的問題發(fā)生了,我在jedis中連接的時(shí)候一直報(bào)錯(cuò) No more cluster attempts left
換了幾次jedis驅(qū)動(dòng)3.1和3.2就是 No more cluster attempts left
 這個(gè)錯(cuò)誤,網(wǎng)上也找不到對策,換了2.9的驅(qū)動(dòng)就是time out。后來反復(fù)各種調(diào)試,無意中發(fā)現(xiàn)是7005(master)
 連不上,只要在jedis中剔除掉7005 就可以了
 繼續(xù)調(diào)試,把7005停掉,它對應(yīng)的slave7002(在另一臺機(jī)器上)變成了新的master,在啟動(dòng)7005,7005變成了slave,然后一切都正常了,7005也能連上了。好神奇
 繼續(xù)調(diào)查,把7001(也是一臺master)的reds配置文件和7005對比,發(fā)現(xiàn)除了端口號不同,完全一致。其實(shí)當(dāng)時(shí)做集群的時(shí)候都是按照7001改的,最后無奈又復(fù)制了一份7001的配置文件到7005那臺機(jī)器。
 把端口號改成7000,停掉7005,把7000加入集群,作為7002的slave。一切正常了,停掉7002,7000變成了master。依然正常。
 實(shí)在是找不到原因了,暫時(shí)先記錄下 最后我有兩點(diǎn)疑問 1 我不知道這個(gè)問題是不是和外網(wǎng)訪問redis 有關(guān)
 (等有時(shí)間的時(shí)候把代碼考到云上去運(yùn)行下試試)
 2 當(dāng)然redis一般來說肯定是內(nèi)網(wǎng)訪問,但是如果像我這樣搭建redis
 cluster,是不是redis集群間的通信全是走外網(wǎng)?那速度豈不是很慢了,而且會浪費(fèi)很多帶寬流量
總結(jié)
以上是生活随笔為你收集整理的外网访问redis cluster的大坑的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 【unity shader】unity游
- 下一篇: Google Play 上架总结(二)G
