RocketMQ 5.1.4集群部署在内网环境,外部公网环境的java服务可以连接这个集群嘛?-[阿里云_云淘科技]

RocketMQ 5.1.4集群部署在内网环境,分散在3台内网机器上(都没有公网ip),然后把内网集群的nameserver的端口9876映射到公网,外部公网环境的java服务可以连接这个rocketmq集群嘛?

以下为热心网友提供的参考意见

不行 ,此回答整理自钉群“群2-Apache RocketMQ 中国开发者钉钉群”

以下为热心网友提供的参考意见

在您的情况下,如果内网的RocketMQ集群的NameServer的端口9876已经映射到公网,那么外部公网环境的Java服务应该可以连接这个RocketMQ集群。但是,这要取决于具体的网络配置和防火墙规则。

首先,确保您的内网环境能够正常访问RocketMQ集群。通常,NameServer是一个无状态节点,可集群部署,节点之间无任何信息同步。因此,即使NameServer分布在3台内网机器上,只要它们之间的通信没有问题,那么整个集群应该是可用的。

其次,如果您已经将NameServer的端口9876映射到公网,那么从公网访问这个端口应该能够到达NameServer。这一步通常涉及到路由器或防火墙的配置。

最后,外部的Java服务需要知道NameServer的地址。这通常是通过在Java服务的配置文件中设置namesrvAddr来实现的。例如,如果NameServer的公网地址是your_nameserver_ip:9876,那么在Java服务的配置文件中应该设置为:

rocketmq.name-server=your_nameserver_ip:9876

一旦这些步骤都完成了,外部的Java服务应该就能够连接到您的RocketMQ集群了。

以下为热心网友提供的参考意见

如果您在内网环境中部署了RocketMQ 5.1.4集群,并将内网集群的NameServer端口9876映射到公网,那么外部公网环境的Java服务是可以连接到这个RocketMQ集群的。

通过将内网的NameServer端口映射到公网,即使RocketMQ集群所在机器没有公网IP,但外部公网环境的Java服务仍然可以使用公网IP和映射后的端口来访问和连接RocketMQ集群。

确保在Java服务中正确配置RocketMQ集群的NameServer地址,使用公网IP和映射后的端口进行连接。例如:

String nameServerAddress = "公网IP:9876";
DefaultMQProducer producer = new DefaultMQProducer("producerGroup");
producer.setNamesrvAddr(nameServerAddress);
producer.start();

本文来自投稿,不代表新手站长_郑州云淘科技有限公司立场,如若转载,请注明出处:https://www.cnzhanzhang.com/11978.html

(0)
匿名
上一篇 2023年12月17日
下一篇 2023年12月17日

相关推荐

新手站长从“心”出发,感谢16年您始终不离不弃。