今天上班時(shí)候拱绑,同事反饋我們負(fù)責(zé)的一個(gè)系統(tǒng)服務(wù)掛了,因?yàn)橹髫?fù)責(zé)人有事不在,我作為第二負(fù)責(zé)人(其實(shí)是剛來(lái)不久的新人)開始著手處理這個(gè)事情粪牲。
根據(jù)同事描述,看了一下對(duì)應(yīng)的dubbo服務(wù)止剖,顯示"沒(méi)有提供者"腺阳,看了一下系統(tǒng)頁(yè)面落君,也打不開了,以為只是常規(guī)的配置更改影響到了舌狗,我便重新打包上傳叽奥、重啟部署等待系統(tǒng)恢復(fù);然而一二分鐘過(guò)去了痛侍,dubbo服務(wù)遲遲沒(méi)有動(dòng)靜朝氓,頁(yè)面依舊打不開……懷疑是關(guān)聯(lián)系統(tǒng)沒(méi)有啟動(dòng)的原因,檢查了一下關(guān)聯(lián)系統(tǒng)正常主届,不放心赵哲,又重啟了關(guān)聯(lián)系統(tǒng),問(wèn)題依舊……
然后繼續(xù)分析君丁,我就查看日志文件枫夺,發(fā)現(xiàn)了這么一段話:
redis.clients.jedis.exceptions.JedisDataException: DENIED Redis is running in protected mode because protected mode is enabled
懷疑是Redis保護(hù)模式開啟了,導(dǎo)致Redis連不上導(dǎo)致的绘闷,嘗試用客戶端連接橡庞,果然出現(xiàn)了超時(shí)。至此印蔗,原因算是找到了扒最,知道了問(wèn)題原因,便解決了問(wèn)題的一半华嘹,何況這種開源軟件真的良心吧趣,把解決方案都列出來(lái)了:
1)通過(guò)從服務(wù)器的同一主機(jī)連接到Redis,只需禁用保護(hù)模式從環(huán)回接口發(fā)送命令'CONFIG SET protected-mode no'正在運(yùn)行耙厚,但如果您這樣做强挫,則無(wú)法通過(guò)互聯(lián)網(wǎng)公開訪問(wèn)。使用CONFIG REWRITE使此更改成為永久更改薛躬。
2)或者俯渤,您可以通過(guò)編輯Redis配置文件并將保護(hù)模式選項(xiàng)設(shè)置為“no”來(lái)禁用保護(hù)模式,然后重新啟動(dòng)服務(wù)器泛豪。
3)如果您手動(dòng)啟動(dòng)服務(wù)器進(jìn)行測(cè)試稠诲,請(qǐng)使用“--protected-mode no”選項(xiàng)重新啟動(dòng)它。
4)設(shè)置綁定地址或驗(yàn)證密碼诡曙。
參考了網(wǎng)上的一篇資料 解決使用jedis連接是報(bào)DENIED Redis is running in protected mode錯(cuò)誤
順便檢查了一下相應(yīng)的配置
- redis 時(shí)只能通過(guò)本地localhost (127.0.0.1)這個(gè)來(lái)鏈接臀叙,而不能用網(wǎng)絡(luò)ip(192.168..)這個(gè)鏈接,問(wèn)題然如果用網(wǎng)絡(luò)ip 鏈接會(huì)報(bào)錯(cuò)誤: 處于保護(hù)模式价卤,只能本地鏈接劝萤,我們需要修改配置文件../redis.conf
# bind 127.0.0.1 這個(gè)已經(jīng)注釋
2.Redis默認(rèn)不是以守護(hù)進(jìn)程的方式運(yùn)行,可以通過(guò)該配置項(xiàng)修改慎璧,使用yes啟用守護(hù)進(jìn)程
daemonize yes 已經(jīng)改為yes
- 將保護(hù)模式關(guān)閉
protected-mode no
搞定上述步驟準(zhǔn)備重啟床嫌,關(guān)鍵的是 沒(méi)反應(yīng)應(yīng)該是你啟動(dòng)服務(wù)端的時(shí)候沒(méi)有帶上配置文件
你配置好了跨释,但要重新啟動(dòng)redis,如果還是報(bào)一樣的錯(cuò)誤,很可能是沒(méi)有啟動(dòng)到配置文件厌处,所以需要真正的和配置文件啟動(dòng)需要:
./redis-server redis.conf
這樣鳖谈,啟動(dòng)成功!
最后阔涉,檢查dubbo服務(wù)正常缆娃,刷新頁(yè)面,頁(yè)面終于正常顯示瑰排。大功告成贯要,記錄下心得~