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

Apache RocketMQ globalWhiteRemoteAddresses是否支持域名?

Apache RocketMQ globalWhiteRemoteAddresses是否支持域名?

展开
收起
真的很搞笑 2023-06-06 13:46:53 229 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
    赞同 展开评论 打赏

涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/

相关产品

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

    热门文章

    相关电子书

    更多
    Apache Flink技术进阶 立即下载
    Apache Spark: Cloud and On-Prem 立即下载
    Hybrid Cloud and Apache Spark 立即下载

    相关镜像