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

Apache RocketMQ globalWhiteRemoteAddresses是否支持域名?

Apache RocketMQ globalWhiteRemoteAddresses是否支持域名?

展开
收起
真的很搞笑 2023-06-06 13:46:53 124 0
4 条回答
写回答
取消 提交回答
  • 在 Apache RocketMQ 的配置文件 broker.conf 中,globalWhiteRemoteAddresses 支持使用 IP 地址和 IP 地址段的方式进行配置,不支持直接使用域名进行配置。 虽然目前 globalWhiteRemoteAddresses 不支持域名,不过您可以考虑使用 Kubernetes 中 Service 的方式来间接实现使用域名访问的设定。在 Kubernetes 集群中创建一个 Service 并将其绑定到 Broker 所在的 Pod 上,对 Service 的访问方式进行配置,这样就可以使用 Service 域名来访问 Broker。 具体来说,您可以使用 Kubernetes 的 Headless Service,该 Service 可以为每个 Pod 提供唯一的 DNS 记录。将 Headless Service 绑定到 RocketMQ Broker 上后,每个 Broker 都会被分配一个唯一的 DNS 记录,可以将这些 DNS 记录列入 globalWhiteRemoteAddresses 。 下面是一个 Headless Service 的范例:

    kind: Service
    apiVersion: v1
    metadata:
      name: broker-hs
    spec:
      clusterIP: None
      selector:
        app: rocketmq-broker
      ports:
        - name: client
          port: 10909
          targetPort: 10909
          protocol: TCP
        - name: nameserver
          port: 9876
          targetPort: 9876
          protocol: TCP
    
    

    在 Kubernetes 的集群中运行这个对象,并使用 Service 的 DNS 记录来验证 globalWhiteRemoteAddresses 的配置。 注意:请确保您的 Kubernetes 中 DNS 配置正确,可以正常的解析 Service 的 DNS 记录。同时请确保 globalWhiteRemoteAddresses 配置了正确的端口,并且修改后重新启动 Broker 才能使修改生效。

    2023-06-06 17:21:29
    赞同 展开评论 打赏
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    阿里云MQ 基于 Apache RocketMQ 实现,globalWhiteRemoteAddresses 的配置项可以设置 IP 白名单,用于限制 Producer 和 Consumer 可访问的 Broker 地址。在 RocketMQ 中,globalWhiteRemoteAddresses 配置项支持以下几种格式:

    • 单个 IP 地址:例如 127.0.0.1。
    • IP 地址段:例如 192.168.1.0/24,表示 192.168.1.x 网段下的所有 IP 地址(x 的取值范围为 0-255)。
    • IPv6 地址:例如 0:0:0:0:0:0:0:1。
    • 域名:例如 www.example.com,表示允许通过该域名解析出来的所有 IP 地址访问。

    因此,在 globalWhiteRemoteAddresses 中配置域名是支持的。当配置域名时,RocketMQ 会自动将域名解析为对应的 IP 地址进行匹配。如果域名解析出来的地址不在白名单中,则 Producer 和 Consumer 将无法连接到 Broker。

    需要注意的是,使用域名作为 globalWhiteRemoteAddresses 配置项需要满足以下几个条件:

    1. 域名必须能够正确解析为一组 IP 地址,且这些 IP 地址必须与 Broker 所在节点的 IP 地址列表相匹配。建议在使用域名作为配置项之前,先通过 nslookup、dig 等工具测试域名是否能够正确解析。

    2. 如果 Broker 所在节点的 IP 地址列表存在变化,需要及时更新 globalWhiteRemoteAddresses 配置项。否则,新的 Broker 节点可能无法被 Producer 和 Consumer 访问。

    3. 当配置域名时,RocketMQ 在进行白名单匹配时会进行域名解析,这可能带来额外的网络开销和延迟。如果你的业务对延迟有严格要求,建议直接使用 IP 地址作为配置项。

    使用域名作为 globalWhiteRemoteAddresses 配置项是支持的,但需要保证域名能够正确解析为与 Broker 节点 IP 地址列表相匹配的一组 IP 地址,并注意更新配置项。同时,需要考虑到域名解析带来的网络延迟和开销。

    2023-06-06 16:38:34
    赞同 展开评论 打赏
  • Apache RocketMQ的globalWhiteRemoteAddresses参数可以支持IP地址和域名的配置。如果您需要配置域名,只需要在配置文件中将域名填写即可。

    但需要注意的是,配置域名时需要确保该域名能够被正确解析为IP地址,否则将无法正常使用。

    2023-06-06 14:19:33
    赞同 展开评论 打赏
  • 看代码是不行,有地方验证是否是ip地址的。你可以自己测试一下,此回答整理自钉群“群2-Apache RocketMQ 中国开发者钉钉群”

    2023-06-06 13:52:21
    赞同 展开评论 打赏

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

相关产品

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

    热门文章

    相关电子书

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

    相关镜像