首页 / 平台管理 / 应用商店管理 / Operators / 使用 Operator / RocketMQ(Alpha) / 使用指导

使用指导

RocketMQ 使用起来方便简单,通过依次创建成功的 NameServer 实例、Broker 实例,即可实现消息投递。

创建实例

前提条件

操作步骤

  1. 在左侧导航栏中,单击 应用商店管理 > Operators

  2. 已部署 Operators 页签中,单击 rocketmq-operator

  3. 单击实例卡片中的 创建实例

    提示:为确保创建成功的 NameServer 实例与 Broker 实例能够正常通信,需依次创建 NameServer 实例、Broker 实例。

  4. 参考以下说明配置相关参数。

    • NameServer 实例参数:

      配置项 说明
      Image RocketMQ 的镜像,默认是 rocketmq/rocketmq-nameserver:v4.9.3
      Replicas RocketMQ NameServer 集群节点的个数仅支持正奇数,例如:1、3
      ServiceType ClusterIP:用于集群内访问。
      NodePort:用于集群外访问。
    • Broker 实例参数:

      配置项 说明
      命名空间 与 NameServer 实例的 命名空间 保持一致。
      Image RocketMQ 的镜像,默认是 rocketmq/rocketmq-broker:v4.9.3
      Model 建议您使用 General 模式。如需使用 Dledger 模式,请联系技术支持人员。
      NameServers 连接 NameServer 实例的地址。地址格式:<NameServer 实例名称>-nameserver-server-<编号>.<NameServer 实例名称>-nameserver-nodes.<NameServer 实例所在命名空间>.svc.cluster.local:9876
      说明
      • 编号是从 0 开始的有序整数。
      • 地址需包括 NameServer 所有节点地址,节点地址之间用;隔开。
      ReplicaPerGroup 从节点的个数。每个主节点至少需配置 1 个从节点。建议 2 主 2 从规模。
      ServiceType 与 NameServer 实例的 ServiceType 保持一致。
      persistence 依据前提条件,填入 存储类名称。如果无可用存储类,请联系管理员创建。
  5. 单击 创建

    说明:等待 YAML 文件中有且仅有 4 种为 True 的 status 时,实例创建成功。示例如下:

消息投递

使用生产者和消费者从集群内、集群外与 RocketMQ 进行消息投递。

集群内访问

  1. 获取 RocketMQ 所在集群的实际镜像仓库地址。

    1. 在左侧导航栏中,单击 集群管理 > 集群

    2. 单击 RocketMQ 所在的 集群名称

    3. 在基本信息中,单击 展开,获取其镜像仓库地址。

  2. 查看 Broker 实例的详情信息,获取 NameServers 地址。

  3. 创建 Pod 作为客户端。

    $ kubectl -n <实例所在命名空间> run <新的 Pod 名称> -ti --image=<实际镜像仓库地址>/3rdparty/rocketmq/rocketmq-broker:v4.9.3 --rm=true --restart=Never sh
  4. 生产消息。示例如下:

    $ export NAMESRV_ADDR="<NameServers 地址>" 
    $ ./tools.sh org.apache.rocketmq.example.quickstart.Producer 
    >hello1
    >hello2
    >hello3
    >
  5. 消费消息。示例如下:

    $ ./tools.sh org.apache.rocketmq.example.quickstart.Consumer
    hello1
    hello2
    hello3

集群外访问

  1. 获取主机端口。

    1. 在 Container Platform 左侧导航栏中,单击 网络 > 内部路由

    2. 单击 NameServer 节点的 内部路由名称 ,获取其主机端口。

  2. 获取 RocketMQ 所在集群的任意节点 IP 地址。

  3. 在客户端进行消息投递。示例如下:

    • 生产消息

      $ export NAMESRV_ADDR="<节点 IP 地址>:<主机端口>;<节点 IP 地址>:<主机端口>" 
      $ <文件路径>/tools.sh org.apache.rocketmq.example.quickstart.Producer 
      >hello1
      >hello2
      >hello3
      >
    • 消费消息

      $ <文件路径>/tools.sh org.apache.rocketmq.example.quickstart.Consumer
      hello1
      hello2
      hello3