快速连接RocketMQ并生产消费消息
本章节将为您介绍分布式消息服务RocketMQ版(以下简称RocketMQ)入门的使用流程,以创建一个开启SSL的RocketMQ实例,使用客户端连接实例并生产消费消息为例,帮助您快速上手RocketMQ。
操作流程
- 准备工作。
在创建RocketMQ实例前,您需要完成注册华为云并实名认证、为账户充值、为用户添加操作权限、创建VPC和子网、创建安全组、创建弹性云服务器并配置环境的准备工作。
- 创建RocketMQ实例。
在创建实例时,您需要开启SSL、关闭ACL,并配置已创建的VPC和子网、安全组。
- 创建Topic。
在实例创建成功后,您需要创建Topic,用于发送与接收消息。
- 连接RocketMQ实例生产和消费消息。
使用客户端连接实例,并通过命令行生产消费消息。
步骤一:准备工作
- 注册华为账号并实名认证。
如果您已有一个华为账号,请跳过此步骤。如果您还没有华为账户,请参考注册华为账号并开通华为云和实名认证介绍完成华为云的注册和实名认证。
- 为账户充值。
如果您的账户有足够金额,请跳到下一个任务。如果您的账户还没有足够金额,请先为账户充值,具体请参考账户充值。
- 为用户添加RocketMQ实例的操作权限。
您需要有RocketMQ的管理员权限“DMS FullAccess”,具体操作请参考创建用户并授权使用DMS for RocketMQ。
- 创建VPC和子网。
创建的VPC与RocketMQ实例必须在相同的区域。
RocketMQ实例运行于虚拟私有云中,在创建实例前需要确保有可用的虚拟私有云。创建VPC和子网的操作指导,请参考创建虚拟私有云和子网。
- 创建安全组。
创建安全组的操作步骤,请参考创建安全组。
连接RocketMQ实例前,请添加表1所示安全组规则。
创建安全组后,系统默认添加入方向“允许安全组内的弹性云服务器彼此通信”规则和出方向“放通全部流量”规则,此时使用内网通过同一个VPC访问RocketMQ实例,无需添加表1的规则。
- 创建弹性云服务器(Elastic Cloud Server,以下简称ECS)并配置环境。
本操作以Linux系统的ECS为例,Windows系统ECS的JDK安装与环境变量配置可自行在互联网查找相关帮助。
- 登录管理控制台,在左上角单击,选择“计算 > 弹性云服务器”,创建一个ECS实例。
具体创建操作,请参考购买弹性云服务器。如果您已有可用的ECS,可重复使用,不需要再次创建。
- 使用root用户登录ECS。
- 安装JDK,并配置JAVA_HOME与PATH环境变量。
- 下载JDK。
ECS虚拟机默认自带的JDK可能不符合要求,例如OpenJDK,需要配置为Oracle的JDK,可至Oracle官方下载页面下载Java Development Kit 1.8.111及以上版本。
- 执行以下命令解压JDK。
tar -zxvf jdk-8u321-linux-x64.tar.gz
“jdk-8u321-linux-x64.tar.gz”为JDK的版本,请根据实际情况修改。
- 执行以下命令编辑环境变量文件“.bash_profile”。
vim ~/.bash_profile
- 在环境变量文件中添加如下内容。
export JAVA_HOME=/opt/java/jdk1.8.0_321 export PATH=$JAVA_HOME/bin:$PATH
“/opt/java/jdk1.8.0_321”为JDK的安装路径,请根据实际情况修改。
- 按“Esc”退出编辑模式并执行以下命令保存环境变量文件。
:wq
- 执行以下命令使环境变量生效。
source .bash_profile
- 下载JDK。
- 执行以下命令查看JDK是否安装成功。
java -version
显示信息中包含如下信息则表示JDK安装成功。java version "1.8.0_321"
- 执行以下命令下载“rocketmq-tutorial”示例软件包。
wget https://dms-demos.obs.cn-north-1.myhuaweicloud.com/rocketmq-tutorial.zip
- 执行以下命令解压“rocketmq-tutorial”。
unzip rocketmq-tutorial.zip
- 登录管理控制台,在左上角单击,选择“计算 > 弹性云服务器”,创建一个ECS实例。
步骤二:创建RocketMQ实例
使用RocketMQ进行消息生产和消费时,必须先创建RocketMQ实例。实例中的虚拟机资源会存储Topic信息。
- 进入购买RocketMQ实例页面。
- 在“快速购买”页签,设置实例基础配置,如图2所示,配置详情请参考表2。
- 设置实例规格和存储空间,如图3所示,配置详情请参考表3。
- 设置实例网络环境信息,如图4所示,配置详情请参考表4。
- 设置实例的访问方式,如图5所示,配置详情请参考表5。
- 设置实例高级配置,如图6所示,配置详情请参考表6,其他参数保持默认设置。
- 填写完上述信息后,单击“确认订单”,进入“确认配置”页面。
- 确认实例信息无误后,勾选“华为云用户协议”,并单击“提交”请求。
- 在实例列表页面,查看RocketMQ实例是否创建成功。
创建实例大约需要3到15分钟,此时实例的“状态”为“创建中”。
- 当实例的“状态”变为“运行中”时,说明实例创建成功。
- 当实例的“状态”变为“创建失败”,请删除创建失败的实例,然后重新创建。如果重新创建仍然失败,请联系客服。
- 实例创建成功后,单击实例名称,进入实例基本信息页面。
- 记录实例的连接地址,便于生产和消费消息时使用。
图7 记录实例连接地址
步骤三:创建Topic
Topic,即消息主题,消息发送与接收的基本单元。创建RocketMQ实例成功后,需要手动创建Topic,然后才能进行生产消息和消费消息。
- 单击RocketMQ实例的名称,进入实例基本信息页面。
- 在左侧导航栏,单击“Topic管理”,进入“Topic管理”页面。
- 单击“创建Topic”,弹出“创建Topic”页面。
- 参考表7,填写Topic名称和配置信息。
表7 Topic参数说明 参数
说明
Topic名称
填写Topic的名称。此处配置为“Topic01”。
消息类型
选择消息的类型。此处选择“普通”。
描述
描述是对Topic的补充说明。此处不填写描述信息。
图8 创建Topic
- 配置完成后,单击“确定”,完成Topic的创建。
步骤四:连接RocketMQ实例生产和消费消息
- 在ECS环境中进入“rocketmq-tutorial/bin”目录。
cd rocketmq-tutorial/bin
- 运行生产普通消息命令。
命令示例如下:
JAVA_OPT=-Dtls.enable=true sh mqadmin sendMessage -n "10.xxx.xxx.89:8100;10.xxx.xxx.144:8100" -t Topic01 -p "hello rocketmq"
- 运行消费普通消息命令。
命令示例如下:
JAVA_OPT=-Dtls.enable=true sh mqadmin consumeMessage -n "10.xxx.xxx.89:8100;10.xxx.xxx.144:8100" -t Topic01
如上图中BODY显示的内容即为消费消息的内容。
如需停止消费使用Ctrl+C命令退出。
相关信息
- 如果您想了解关于RocketMQ的相关概念,请参考RocketMQ基本概念。
- RocketMQ实例创建时,如果消费者客户端与生产者客户端无需通过密文传输,那么您可以关闭SSL。此时连接RocketMQ实例生产和消费消息的操作请参见使用客户端连接RocketMQ(关闭SSL)。
- 如果您需要创建多个用户并为其赋予不同的Topic和消费组权限,以达到用户之间的权限隔离,那么您需要先开启ACL访问控制并配置ACL用户,具体操作请参考开启RocketMQ ACL访问和配置RocketMQ ACL用户。
- 如果您需要通过公网访问RocketMQ实例,请参见配置RocketMQ实例的公网访问。