Apache RocketMQ这个错误日志只出现在从节点上 主节点却没有问题 为什么?这个方法的org.apache.rocketmq.broker.out.BrokerOuterAPI#getTimerCheckPoint如下行调用出错
RemotingCommand response = this.remotingClient.invokeSync(MixAll.brokerVIPChannel(true, addr), request, 3000);
Apache RocketMQ这个错误日志只出现在从节点上 主节点却没有问题 为什么?这个方法的org.apache.rocketmq.broker.out.BrokerOuterAPI#getTimerCheckPoint如下行调用出错
RemotingCommand response = this.remotingClient.invokeSync(MixAll.brokerVIPChannel(true, addr), request, 3000);
那时候是不是还没切换,所以单向配置没问题。主备切换场景中,谁都可能成为主,所以要把同组broker所有ip都配置到白名单中。这部分内容 4.x还是5.x都没有变过的
https://rocketmq.apache.org/zh/docs/4.x/bestPractice/04access,
此回答整理自钉群“群2-Apache RocketMQ 中国开发者钉钉群”
问题1:如果该错误只在从节点上出现,可能是因为从节点与主节点的配置不同步或数据同步不完整导致的。建议您检查从节点与主节点的配置是否一致,并确保从节点已成功拉取到主节点的数据。
此外,也有可能是由于网络原因导致的,建议您检查从节点和主节点之间的网络连接是否正常。
问题2:如果您在Kubernetes集群中部署RocketMQ,并且需要动态获取Pod的IP地址并设置白名单,可以考虑使用ConfigMap来存储Pod的IP地址,并使用downwardAPI来获取Pod的IP地址。然后将这些IP地址添加到broker.conf文件中的
plain_acl.yml
配置文件中的globalWhiteRemoteAddresses
中。例如,在ConfigMap中定义以下数据:
然后,在broker.conf文件中配置以下内容:
最后,在Kubernetes Pod的环境变量中设置以下内容:
这样可以动态地将Pod的IP地址添加到broker.conf文件中的
plain_acl.yml
配置文件中。问题3:是的,您可以在
plain_acl.yml
配置文件中设置globalWhiteRemoteAddresses
来指定白名单,支持IP地址和域名。如果您要使用域名,请确保所有Broker都能够解析该域名。