使用指导
RocketMQ 使用起来方便简单,通过依次创建成功的 NameServer 实例、Broker 实例,即可实现消息投递。
-
NameServer 实例:实现 Broker 管理和路由信息管理。
-
Broker 实例:实现消息存储、消息传递、消息查询以及高可用等功能。
创建实例
前提条件
-
已部署 RocketMQ Operator,具体请参考 部署 Operator 。
-
在左侧导航栏中,单击 存储管理 > 存储类,查看存储类名称,确保当前集群已存在创建成功的存储类,且可用空间充足。
操作步骤
-
在左侧导航栏中,单击 应用商店管理 > Operators。
-
在 已部署 Operators 页签中,单击 rocketmq-operator。
-
单击实例卡片中的 创建实例。
提示:为确保创建成功的 NameServer 实例与 Broker 实例能够正常通信,需依次创建 NameServer 实例、Broker 实例。
-
参考以下说明配置相关参数。
-
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 依据前提条件,填入 存储类名称。如果无可用存储类,请联系管理员创建。 - 编号是从 0 开始的有序整数。
-
-
单击 创建。
说明:等待 YAML 文件中有且仅有 4 种为 True 的 status 时,实例创建成功。示例如下:
消息投递
使用生产者和消费者从集群内、集群外与 RocketMQ 进行消息投递。
集群内访问
-
获取 RocketMQ 所在集群的实际镜像仓库地址。
-
在左侧导航栏中,单击 集群管理 > 集群。
-
单击 RocketMQ 所在的 集群名称。
-
在基本信息中,单击 展开,获取其镜像仓库地址。
-
-
查看 Broker 实例的详情信息,获取 NameServers 地址。
-
创建 Pod 作为客户端。
$ kubectl -n <实例所在命名空间> run <新的 Pod 名称> -ti --image=<实际镜像仓库地址>/3rdparty/rocketmq/rocketmq-broker:v4.9.3 --rm=true --restart=Never sh
-
生产消息。示例如下:
$ export NAMESRV_ADDR="<NameServers 地址>" $ ./tools.sh org.apache.rocketmq.example.quickstart.Producer >hello1 >hello2 >hello3 >
-
消费消息。示例如下:
$ ./tools.sh org.apache.rocketmq.example.quickstart.Consumer hello1 hello2 hello3
集群外访问
-
获取主机端口。
-
在 Container Platform 左侧导航栏中,单击 网络 > 内部路由。
-
单击 NameServer 节点的 内部路由名称 ,获取其主机端口。
-
-
获取 RocketMQ 所在集群的任意节点 IP 地址。
-
在客户端进行消息投递。示例如下:
-
生产消息
$ 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
-