Native-image之后无法连接namesvr,但是在jdk环境里面可以连接
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 38/100
- Issue 类型
- 缺陷
- 描述清晰度
- 需要澄清
- 活跃度
- 活跃
- 技术栈
- java
调研方向
首先,使用 Spring Boot 3.1.6、rocketmq-spring-boot-starter 2.2.3 以及所示的 name-server 配置,复现 JDK 和 Native Image 环境之间的差异。跟踪从 ListenerContainerConfiguration 经过 MQClientInstance.updateTopicRouteInfoFromNameServer 和 NettyRemotingClient.invokeSync 的失败过程。完成的标准是 native 可执行文件连接到 192.168.192.214:8876,并成功注册两个 listener。
由索引模型根据 Issue 内容生成。
描述
版本:
SpringBoot3.1.6版本 和 rocketmq-spring-boot-starter 2.2.3版本
Native-Image之后错误信息
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userRegisterListener': java.lang.IllegalStateException: org.apache.rocketmq.remoting.exception.RemotingSendRequestException: send request to <192.168.192.214:8876> failed
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:605) ~[ai:6.0.14]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:520) ~[ai:6.0.14]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325) ~[ai:6.0.14]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[ai:6.0.14]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323) ~[ai:6.0.14]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[ai:6.0.14]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:973) ~[ai:6.0.14]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:950) ~[ai:6.0.14]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:616) ~[ai:6.0.14]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[ai:3.1.6]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:738) ~[ai:3.1.6]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:440) ~[ai:3.1.6]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:316) ~[ai:3.1.6]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) ~[ai:3.1.6]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1295) ~[ai:3.1.6]
at com.huyu.App.main(App.java:13) ~[ai:na]
at [email protected]/java.lang.invoke.LambdaForm$DMH/sa346b79c.invokeStaticInit(LambdaForm$DMH) ~[na:na]
Caused by: java.lang.RuntimeException: java.lang.IllegalStateException: org.apache.rocketmq.remoting.exception.RemotingSendRequestException: send request to <192.168.192.214:8876> failed
at org.apache.rocketmq.spring.autoconfigure.ListenerContainerConfiguration.registerContainer(ListenerContainerConfiguration.java:109) ~[ai:na]
at org.apache.rocketmq.spring.annotation.RocketMQMessageListenerBeanPostProcessor.postProcessAfterInitialization(RocketMQMessageListenerBeanPostProcessor.java:55) ~[ai:na]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:434) ~[ai:6.0.14]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1773) ~[ai:6.0.14]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:598) ~[ai:6.0.14]
... 16 common frames omitted
Caused by: java.lang.IllegalStateException: org.apache.rocketmq.remoting.exception.RemotingSendRequestException: send request to <192.168.192.214:8876> failed
at org.apache.rocketmq.client.impl.factory.MQClientInstance.updateTopicRouteInfoFromNameServer(MQClientInstance.java:671) ~[ai:5.0.0]
at org.apache.rocketmq.client.impl.factory.MQClientInstance.updateTopicRouteInfoFromNameServer(MQClientInstance.java:500) ~[ai:5.0.0]
at org.apache.rocketmq.client.impl.consumer.DefaultMQPushConsumerImpl.updateTopicSubscribeInfoWhenSubscriptionChanged(DefaultMQPushConsumerImpl.java:1206) ~[na:na]
at org.apache.rocketmq.client.impl.consumer.DefaultMQPushConsumerImpl.start(DefaultMQPushConsumerImpl.java:969) ~[na:na]
at org.apache.rocketmq.client.consumer.DefaultMQPushConsumer.start(DefaultMQPushConsumer.java:737) ~[na:na]
at org.apache.rocketmq.spring.support.DefaultRocketMQListenerContainer.start(DefaultRocketMQListenerContainer.java:343) ~[ai:2.2.3]
at org.apache.rocketmq.spring.autoconfigure.ListenerContainerConfiguration.registerContainer(ListenerContainerConfiguration.java:106) ~[ai:na]
... 20 common frames omitted
Caused by: org.apache.rocketmq.remoting.exception.RemotingSendRequestException: send request to <192.168.192.214:8876> failed
at org.apache.rocketmq.remoting.netty.NettyRemotingAbstract.invokeSyncImpl(NettyRemotingAbstract.java:436) ~[ai:5.0.0]
at org.apache.rocketmq.remoting.netty.NettyRemotingClient.invokeSync(NettyRemotingClient.java:455) ~[na:na]
at org.apache.rocketmq.client.impl.MQClientAPIImpl.getTopicRouteInfoFromNameServer(MQClientAPIImpl.java:1785) ~[na:na]
at org.apache.rocketmq.client.impl.MQClientAPIImpl.getTopicRouteInfoFromNameServer(MQClientAPIImpl.java:1776) ~[na:na]
at org.apache.rocketmq.client.impl.factory.MQClientInstance.updateTopicRouteInfoFromNameServer(MQClientInstance.java:610) ~[ai:5.0.0]
... 26 common frames omitted
本地使用JDK:
a producer (ai-project) init on namesrv 192.168.192.214:8876
2024-02-26T22:52:24.294+08:00 INFO 25819 --- [ main] a.r.s.s.DefaultRocketMQListenerContainer : running container: DefaultRocketMQListenerContainer{consumerGroup='close-order-group', namespace='', nameServer='192.168.192.214:8876', topic='ORDER_CLOSE_TOPIC', consumeMode=CONCURRENTLY, selectorType=TAG, selectorExpression='', messageModel=CLUSTERING', tlsEnable=false, instanceName=DEFAULT}
2024-02-26T22:52:24.294+08:00 INFO 25819 --- [ main] o.a.r.s.a.ListenerContainerConfiguration : Register the listener to container, listenerBeanName:orderCloseListener, containerBeanName:org.apache.rocketmq.spring.support.DefaultRocketMQListenerContainer_1
2024-02-26T22:52:24.325+08:00 INFO 25819 --- [ main] a.r.s.s.DefaultRocketMQListenerContainer : running container: DefaultRocketMQListenerContainer{consumerGroup='user-register-group', namespace='', nameServer='192.168.192.214:8876', topic='USER_REGISTER_SUCCESS_TOPIC', consumeMode=CONCURRENTLY, selectorType=TAG, selectorExpression='', messageModel=CLUSTERING', tlsEnable=false, instanceName=DEFAULT}
2024-02-26T22:52:24.325+08:00 INFO 25819 --- [ main] o.a.r.s.a.ListenerContainerConfiguration : Register the listener to container, listenerBeanName:userRegisterListener, containerBeanName:org.apache.rocketmq.spring.support.DefaultRocketMQListenerContainer_2
就可以连接成功
配置如下
rocketmq:
producer:
group: ai-project
retry-next-server: true
send-message-timeout: 10
name-server: 192.168.192.214:8876
- 主要语言
- Java
- 星标
- 2.3k
- 派生
- 941
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 没有贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
apache/rocketmq-spring 的其他 Issue
-
[Bug] RocketMQClientTemplate.receiveAsync closes the shared SimpleConsumer, breaking all subsequent operations可能已有人在做 @wang-jiahua 于 58 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 88/100
apache/rocketmq-spring#780 · 3 条评论 ·
-
编译报错未关闭
难度 2/5 1-3 小时 新手友好度 72/100
apache/rocketmq-spring#692 · 1 条评论 ·
-
难度 2/5 1-3 小时 新手友好度 68/100
apache/rocketmq-spring#678 · 2 条评论 ·
-
难度 1/5 1 小时以内 新手友好度 82/100
apache/rocketmq-spring#670 · 1 条评论 ·
-
难度 2/5 1-3 小时 新手友好度 62/100
apache/rocketmq-spring#609 · 3 条评论 ·
查看 apache/rocketmq-spring 的全部 Issue
相似的 Issue
-
good first issue
难度 2/5 1-3 小时 新手友好度 90/100
authorjapps/zerocode#808 ·
-
难度 2/5 1-3 小时 新手友好度 65/100
checkstyle/sonar-checkstyle#625 ·
-
难度 2/5 1-3 小时 新手友好度 82/100
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 88/100
quarkusio/quarkus-agent-mcp#302 ·
维护者通常 2 天内回复
-
build
难度 1/5 1 小时以内 新手友好度 85/100
MetricsHub/metricshub-community#1472 ·
维护者通常 1 天内回复