开发者社区 > 云原生 > 消息队列 > 正文

RocketMQ我把内网nameserver的端口9876映射到公网,有遇到这个问题的嘛?

RocketMQ我把内网nameserver的端口9876映射到公网,然后在公网环境中用java服务连接这个映射后的nameserver地址,一直报着日志:
2023-12-16 16:19:04.231 INFO 12 --- [NettyClientSelector_1] [TID:N/A] RocketmqRemoting : closeChannel: close the connection to remote addr
ess[] result: true
2023-12-16 16:19:04.253 INFO 12 --- [NettyClientSelector_1] [TID:N/A] RocketmqRemoting : closeChannel: close the connection to remote addr
ess[] result: true
好像一直连接不上,有遇到这个问题的大佬嘛?网络端口确定都是通的.那如果要访问内网的rocketmq集群,需要怎么做呢?

展开
收起
cuicuicuic 2023-12-17 08:27:58 107 0
3 条回答
写回答
取消 提交回答
  • 可以换成proxy方式,只要把proxy端口暴露出去就可以 nameserver是注册中心,broker注册到nameserver的是内网地址 ,此回答整理自钉群“群2-Apache RocketMQ 中国开发者钉钉群”

    2023-12-18 07:46:19
    赞同 1 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    从日志中可以看出,连接被关闭了,但是没有给出具体的错误信息。这可能是由于网络问题、防火墙设置或者RocketMQ配置问题导致的。

    首先,检查你的公网环境是否可以访问内网的nameserver地址。你可以尝试在公网环境中使用ping命令测试内网nameserver的连通性。

    其次,检查防火墙设置,确保内网的RocketMQ端口(默认为9876)是开放的。你可以在公网环境中尝试使用telnet命令测试端口是否开放。

    最后,检查RocketMQ的配置,确保内网的nameserver地址和端口是正确的。你可以在公网环境中查看RocketMQ的配置文件,确认内网nameserver的地址和端口是否正确。

    2023-12-17 14:57:04
    赞同 1 展开评论 打赏
  • 如果您将RocketMQ内网NameServer的端口9876映射到公网,并在公网环境中使用Java服务连接该映射后的NameServer地址,但一直无法连接成功,并报告关闭连接的日志,可能有以下几个原因和解决方法:

    1. 防火墙或网络配置问题:请确保RocketMQ集群所在的内网环境允许公网流量通过。检查防火墙设置、路由配置和网络访问控制等,确保公网请求可以正确到达内网的映射端口。

    2. 名称解析问题:在公网环境中,将内网的域名解析为对应的公网IP地址可能会遇到问题。建议直接使用内网IP地址进行连接测试,确保能够连通。

    3. 内外网地址转换:如果您的内网环境使用了NAT(Network Address Translation)或类似技术将内网地址映射为公网地址,可能需要在配置中添加相应的转换规则,以确保请求能够正确转发到内网地址。

    4. 其他配置错误:请确保公网环境中的Java服务正确配置了RocketMQ集群的NameServer地址和端口,并且具备与RocketMQ集群相同的网络可达性。

    如果以上方法仍然无法解决问题,建议进一步排查日志文件,查看是否有其他错误或警告信息,以帮助定位和解决问题。另外,可以联系RocketMQ的技术支持团队,提供详细的错误日志和操作步骤,以便他们能够更好地帮助您解决问题。

    2023-12-17 14:21:32
    赞同 1 展开评论 打赏

多个子产品线联合打造金融级高可用消息服务以及对物联网的原生支持,覆盖多行业。

相关产品

  • 云消息队列 MQ
  • 热门讨论

    热门文章

    相关电子书

    更多
    RocketMQ Client-GO 介绍 立即下载
    RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载
    基于 RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载