zookeeper版本升级至3.6.3遇到的问题

原有项目相关配置

项目使用的组件及版本 spring mvc+elastic-job+dubbo+zookeeper

<!-- dubbo -->
<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>dubbo</artifactId>
	<version>2.6.12</version>
</dependency>
<!-- zk依赖 -->
<dependency>
	<groupId>org.apache.zookeeper</groupId>
	<artifactId>zookeeper</artifactId>
	<version>3.4.14</version>
</dependency>
<!-- zk客户端 -->
</dependency>			
	<groupId>org.apache.curator</groupId>  
	<artifactId>curator-framework</artifactId>  
	<version>2.12.0</version>
</dependency>
<dependency>  
	<groupId>org.apache.curator</groupId>  
	<artifactId>curator-recipes</artifactId>  
	<version>2.12.0</version>
</dependency>  
<dependency>  
	<groupId>org.apache.curator</groupId>  
	<artifactId>curator-client</artifactId>  
	<version>2.12.0</version>
</dependency>
<!-- elastic-job依赖 -->
<dependency>
	<groupId>com.dangdang</groupId>
	<artifactId>elastic-job-lite-core</artifactId>
	<version>2.1.5</version>
</dependency>
<dependency>
	<artifactId>quartz</artifactId>
	<groupId>org.quartz-scheduler</groupId>
	<version>2.3.2</version>
</dependency>
<dependency>
	<groupId>com.dangdang</groupId>
	<artifactId>elastic-job-lite-spring</artifactId>
	<version>2.1.5</version>
</dependency>

job.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:reg="http://www.dangdang.com/schema/ddframe/reg"
    xmlns:job="http://www.dangdang.com/schema/ddframe/job"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
                        http://www.springframework.org/schema/beans/spring-beans.xsd
                        http://www.dangdang.com/schema/ddframe/reg
                        http://www.dangdang.com/schema/ddframe/reg/reg.xsd
                        http://www.dangdang.com/schema/ddframe/job
                        http://www.dangdang.com/schema/ddframe/job/job.xsd
                        ">
    <!--配置作业注册中心 -->
    <reg:zookeeper id="regCenter" server-lists="${dubbo.registry}" namespace="yx-job" base-sleep-time-milliseconds="1000" max-sleep-time-milliseconds="3000" max-retries="3" />

    <!-- 配置作业-->
    <job:simple id="XXX" class="XXXX" registry-center-ref="regCenter" cron="0 0 0 * * ?" sharding-total-count="1"  overwrite="true" />   
 	<job:simple id="XXXXX" class="XXXXX" registry-center-ref="regCenter" cron="0 5 0 * * ?" sharding-total-count="10" overwrite="true" />
 </beans>

升级后项目配置

由于zookeeer该版本漏洞需要升级版本至3.6.3改动后的配置

<!-- dubbo -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>dubbo</artifactId>
    <version>2.6.12</version>
</dependency>
<!-- elastic-job新依赖 -->
<dependency>
	<groupId>org.apache.shardingsphere.elasticjob</groupId>
	<artifactId>elasticjob-lite-core</artifactId>
	<version>3.0.1</version>
</dependency>
<dependency>
	<groupId>org.apache.shardingsphere.elasticjob</groupId>
	<artifactId>elasticjob-lite-spring-namespace</artifactId>
	<version>3.0.1</version>
</dependency>
<!-- zk依赖
<dependency>
    <groupId>org.apache.zookeeper</groupId>
    <artifactId>zookeeper</artifactId>
    <version>3.6.3</version>
</dependency>  -->
<!-- zk客户端
</dependency>            
    <groupId>org.apache.curator</groupId>  
    <artifactId>curator-framework</artifactId>  
    <version>2.12.0</version>
</dependency> 
<dependency>  
    <groupId>org.apache.curator</groupId>  
    <artifactId>curator-recipes</artifactId>  
    <version>2.12.0</version>
</dependency>  
<dependency>  
    <groupId>org.apache.curator</groupId>  
    <artifactId>curator-client</artifactId>  
    <version>2.12.0</version>
</dependency>  -->
<!-- elastic-job依赖
<dependency>
    <groupId>com.dangdang</groupId>
    <artifactId>elastic-job-lite-core</artifactId>
    <version>2.1.5</version>
</dependency>
<dependency>
    <artifactId>quartz</artifactId>
    <groupId>org.quartz-scheduler</groupId>
    <version>2.3.2</version>
</dependency>
<dependency>
    <groupId>com.dangdang</groupId>
    <artifactId>elastic-job-lite-spring</artifactId>
    <version>2.1.5</version>
</dependency>  -->

job.xml

  1. 需要调整命名空间
  2. job命名空间只能通过bean指定
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:elasticjob="http://shardingsphere.apache.org/schema/elasticjob"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                        http://www.springframework.org/schema/beans/spring-beans.xsd
                        http://shardingsphere.apache.org/schema/elasticjob
                        http://shardingsphere.apache.org/schema/elasticjob/elasticjob.xsd
                        ">
    <!--配置作业注册中心 -->
    <elasticjob:zookeeper id="regCenter" server-lists="${dubbo.registry}" namespace="my-job" base-sleep-time-milliseconds="1000" max-sleep-time-milliseconds="3000" max-retries="3" />

    <!-- 配置作业 Bean -->
    <bean id="XXX" class="XXXXX"/>
    <bean id="XXXX" class="XXXXXX"/>

    <!-- 配置基于 class 的作业调度 -->
    <elasticjob:job id="XXXXX" job-ref="XXX" registry-center-ref="regCenter" cron="0 0 0 * * ?" sharding-total-count="1"  overwrite="true" />
    <elasticjob:job id="XXXXXX" job-ref="XXXX" registry-center-ref="regCenter" cron="0 5 0 * * ?" sharding-total-count="10" overwrite="true" />

</beans>

以下是遇到的问题及解决办法:

服务运行时创建路径时zookeeper打印信息: 

 Received packet at server of unknown type 19

程序报错:

2022-05-18 20:14:22,432|WARN|localhost-startStop-1-SendThread(127.0.0.1:2181)|org.apache.zookeeper.ClientCnxn$SendThread|run|L121|10.249.128.199|YX|proposal|1|Session 0x100028024ff0000 for sever 127.0.0.1/127.0.0.1:2181, Closing socket connection. Attempting reconnect except it is a SessionExpiredException. org.apache.zookeeper.ClientCnxn$EndOfStreamException: Unable to read additional data from server sessionid 0x100028024ff0000, likely server has closed socket
	at org.apache.zookeeper.ClientCnxnSocketNIO.doIO(ClientCnxnSocketNIO.java:77) ~[zookeeper-3.6.3.jar:3.6.3]
	at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:350) ~[zookeeper-3.6.3.jar:3.6.3]
	at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1290) [zookeeper-3.6.3.jar:3.6.3]
|$|$|
2022-05-18 20:14:22,432|ERROR|localhost-startStop-1|org.apache.curator.framework.imps.CuratorFrameworkImpl|logError|L121|10.249.128.199|YX|proposal|1|Ensure path threw exception org.apache.zookeeper.KeeperException$UnimplementedException: KeeperErrorCode = Unimplemented for /my-job
	at org.apache.zookeeper.KeeperException.create(KeeperException.java:106) ~[zookeeper-3.6.3.jar:3.6.3]
	at org.apache.zookeeper.KeeperException.create(KeeperException.java:54) ~[zookeeper-3.6.3.jar:3.6.3]
	at org.apache.zookeeper.ZooKeeper.create(ZooKeeper.java:1734) ~[zookeeper-3.6.3.jar:3.6.3]
	at org.apache.curator.utils.ZKPaths.mkdirs(ZKPaths.java:351) ~[curator-client-5.1.0.jar:?]
	at org.apache.curator.framework.imps.NamespaceImpl$1.call(NamespaceImpl.java:90) ~[curator-framework-5.1.0.jar:5.1.0]
	at org.apache.curator.RetryLoop.callWithRetry(RetryLoop.java:93) ~[curator-client-5.1.0.jar:?]
	at org.apache.curator.framework.imps.NamespaceImpl.fixForNamespace(NamespaceImpl.java:83) ~[curator-framework-5.1.0.jar:5.1.0]
	at org.apache.curator.framework.imps.CuratorFrameworkImpl.fixForNamespace(CuratorFrameworkImpl.java:719) ~[curator-framework-5.1.0.jar:5.1.0]
	at org.apache.curator.framework.imps.ExistsBuilderImpl.forPath(ExistsBuilderImpl.java:187) ~[curator-framework-5.1.0.jar:5.1.0]
	at org.apache.curator.framework.imps.ExistsBuilderImpl.forPath(ExistsBuilderImpl.java:35) ~[curator-framework-5.1.0.jar:5.1.0]
	at org.apache.shardingsphere.elasticjob.reg.zookeeper.ZookeeperRegistryCenter.isExisted(ZookeeperRegistryCenter.java:196) ~[elasticjob-registry-center-3.0.1.jar:3.0.1]
	at org.apache.shardingsphere.elasticjob.lite.internal.storage.JobNodeStorage.isJobRootNodeExisted(JobNodeStorage.java:67) ~[elasticjob-lite-core-3.0.1.jar:3.0.1]
	at org.apache.shardingsphere.elasticjob.lite.internal.config.ConfigurationService.checkConflictJob(ConfigurationService.java:80) ~[elasticjob-lite-core-3.0.1.jar:3.0.1]
	at org.apache.shardingsphere.elasticjob.lite.internal.config.ConfigurationService.setUpJobConfiguration(ConfigurationService.java:70) ~[elasticjob-lite-core-3.0.1.jar:3.0.1]
	at org.apache.shardingsphere.elasticjob.lite.internal.setup.SetUpFacade.setUpJobConfiguration(SetUpFacade.java:66) ~[elasticjob-lite-core-3.0.1.jar:3.0.1]
	at org.apache.shardingsphere.elasticjob.lite.internal.schedule.JobScheduler.<init>(JobScheduler.java:84) ~[elasticjob-lite-core-3.0.1.jar:3.0.1]
	at org.apache.shardingsphere.elasticjob.lite.api.bootstrap.impl.ScheduleJobBootstrap.<init>(ScheduleJobBootstrap.java:36) ~[elasticjob-lite-core-3.0.1.jar:3.0.1]
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_101]
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_101]
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_101]
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_101]
	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:207) ~[spring-beans-5.2.21.RELEASE.jar:5.2.21.RELEASE]
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:117) ~[spring-beans-5.2.21.RELEASE.jar:5.2.21.RELEASE]
	at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:310) ~[spring-beans-5.2.21.RELEASE.jar:5.2.21.RELEASE]
	at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:295) ~[spring-beans-5.2.21.RELEASE.jar:5.2.21.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1361) ~[spring-beans-5.2.21.RELEASE.jar:5.2.21.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1208) ~[spring-beans-5.2.21.RELEASE.jar:5.2.21.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:556) ~[spring-beans-5.2.21.RELEASE.jar:5.2.21.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516) ~[spring-beans-5.2.21.RELEASE.jar:5.2.21.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324) ~[spring-beans-5.2.21.RELEASE.jar:5.2.21.RELEASE]
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) [spring-beans-5.2.21.RELEASE.jar:5.2.21.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322) [spring-beans-5.2.21.RELEASE.jar:5.2.21.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) [spring-beans-5.2.21.RELEASE.jar:5.2.21.RELEASE]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:897) [spring-beans-5.2.21.RELEASE.jar:5.2.21.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:879) [spring-context-5.2.21.RELEASE.jar:5.2.21.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551) [spring-context-5.2.21.RELEASE.jar:5.2.21.RELEASE]
	at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:401) [spring-web-5.2.21.RELEASE.jar:5.2.21.RELEASE]
	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:292) [spring-web-5.2.21.RELEASE.jar:5.2.21.RELEASE]
	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:103) [spring-web-5.2.21.RELEASE.jar:5.2.21.RELEASE]
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4884) [catalina.jar:8.0.51]
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5347) [catalina.jar:8.0.51]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) [catalina.jar:8.0.51]
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1410) [catalina.jar:8.0.51]
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1400) [catalina.jar:8.0.51]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_101]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_101]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_101]
	at java.lang.Thread.run(Thread.java:745) [?:1.8.0_101]

由于依赖zookeeper.jar升级至3.6.3 , zookeeper服务需要升级至3.6.3问题解决

参考网站:

ElasticJob官网 :  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值