集群架构
首先介绍一下我们生产zookeeper的集群架构,生产zookeeper集群采用3机房5个节点部署,3机房分别部署2-2-1个节点,客户端使用curator框架与zookeeper集群通信。

生产问题
1.网络抖动情况下客户端发生了session moved异常,这个问题只要一出现,之后的所以请求客户端都会收到session moved异常,异常信息如下:
| 16:56:05 ERROR [soa_roomviewers_s10_1_175_111_16024_PullJob-Quartz-worker]c.v.s.j.b.AbstractElasticJob - [PullJob] msg=org.apache.zookeeper.KeeperException$SessionMovedException: KeeperErrorCode = Session moved com..job.exception.RegException: org.apache.zookeeper.KeeperException$SessionMovedException: KeeperErrorCode = Session moved .......... at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at |

本文详细分析了一次生产环境中遇到的Zookeeper sessionMovedException问题,深入探讨了异常产生的原因,包括客户端使用multi操作时的问题。针对此异常,提出了两种解决方案:升级Zookeeper到3.6版本或复制3.6版本的修复代码到现有版本。经过测试验证,通过后者成功解决了问题。

1832





