如何切到netty通信呢,
看到官方文档上写着:NIO continues to be the default, however Netty based communication can be used in place of NIO by setting the environment variable "zookeeper.serverCnxnFactory" to "org.apache.zookeeper.server.NettyServerCnxnFactory".
默认情况下,zkServer.sh start 启动后,查看zk的日志,可以看到:
2019-12-11 00:12:40,842 [myid:] - INFO [main:ServerCnxnFactory@135] - Using org.apache.zookeeper.server.NIOServerCnxnFactory as server connection factory
小弟花了半个小时才实验成功,分享给大家。
【服务端zkServer.sh】
在 $ZK_HOME/conf 目录下创建一个 java.env文件,并配置:
JVMFLAGS="-Dzookeeper.serverCnxnFactory=org.apache.zookeeper.server.NettyServerCnxnFactory
-Dzookeeper.clientCnxnSocket=org.apache.zookeeper.ClientCnxnSocketNetty
"
如果使用zkCli.sh访问时想使用netty,就加上clientCnxnSocket的配置,如上。
通过zkServer.sh start 启动后,查看zk启动日志,检查是否使用Netty通讯:
2019-12-11 00:37:14,230 [myid:] - INFO [main:ServerCnxnFactory@135] - Using org.apache.zookeeper.server.NettyServerCnxnFactory as server connection factory
【客户端使用IDEA】
在VM options中添加下面配置即可:
-Dzookeeper.clientCnxnSocket=org.apache.zookeeper.ClientCnxnSocketNetty
如果仅调试netty在zookeeper 客户端执行流程中的使用,只配置客户端为netty即可。
如果使用SSL的话。则必须使用netty通信。
SSL is only supported on top of Netty communication, which means if you want to use SSL you have to enable Netty.
展开