項目服務都是發布在dubbo+zookeeper上
昨天項目報這個錯。
org.apache.zookeeper.KeeperException$NoAuthException: KeeperErrorCode = NoAuth for
查了一下,是說權限不對。但是項目里連接dubbo並沒有密碼。
啟動 zkCli.sh
看了一下根目錄,
發現看其他目錄都好好的,可以查看
看 /dubbo 這個目錄 就查看不了,權限有問題。 /dubbo 這個目錄就是項目發布服務的目錄。
Authentication is not valid
可能是因為之前有個同事把這台服務加入了大數據集群。
get rmr dele不了。最后是啟用了超級賬戶進行刪除的。
使用超級用戶刪除帶權限的節點
1.使用org.apache.zookeeper.server.auth.DigestAuthenticationProvider生成superDigest:
try { System.out.println(DigestAuthenticationProvider.generateDigest("super:superpw")); } catch (NoSuchAlgorithmException e) { // TODO Auto-generated catch block e.printStackTrace(); }
super:g9oN2HttPfn8MMWJZ2r45Np/LIA=
2.在zookeeper服務端的zkEnv.sh環境變量中加入以下參數,開啟超級用戶,重啟zookeeper服務端:
SERVER_JVMFLAGS="-Dzookeeper.DigestAuthenticationProvider.superDigest=super:g9oN2HttPfn8MMWJZ2r45Np/LIA= $SERVER_JVMFLAGS"
3.在客戶端使用超級用戶登陸
addauth digest super:superpw
4.執行刪除命令
rmr /dubbo
deleteall /dubbo
zk命令集合
https://blog.csdn.net/dandandeshangni/article/details/80558383
https://www.iteye.com/blog/shift-alt-ctrl-1943424