快速连接RabbitMQ并生产消费消息
本文将为您介绍分布式消息服务RabbitMQ版入门的使用流程,以创建一个未开启SSL的RabbitMQ实例,客户端使用内网通过同一个VPC连接RabbitMQ实例生产消费消息为例,帮助您快速上手RabbitMQ。
- 准备工作
RabbitMQ实例运行于虚拟私有云(Virtual Private Cloud,以下简称VPC)中,在创建实例前需要确保有可用的虚拟私有云。
- 创建RabbitMQ实例
在创建实例时,您可以根据需求选择需要的实例规格和数量。
- 连接实例
客户端以RabbitMQ提供的demo,连接未开启SSL的实例。
步骤一:准备工作
- 注册华为账号并实名认证。
在创建RabbitMQ实例前,请先注册华为账号并实名认证,具体步骤请参考注册华为账号并开通华为云和实名认证介绍。
如果您已有一个华为账号并实名认证,请跳过此步骤。
- 为账户充值。
在创建RabbitMQ实例前,确保账户有足够金额。账户充值的具体步骤,请参考账户充值。
- 为用户添加RabbitMQ实例的操作权限。
如果您需要对云上的资源进行精细管理,请使用统一身份认证服务(Identity and Access Management,简称IAM)创建IAM用户及用户组,并授权,以使得IAM用户获得RabbitMQ实例的操作权限。具体操作请参考创建用户并授权使用DMS for RabbitMQ。
- 创建VPC和子网。
在创建RabbitMQ实例前,确保已存在可用的VPC和子网。创建VPC和子网的具体步骤,请参考创建虚拟私有云和子网。
创建的VPC与RabbitMQ实例必须在相同的区域。
- 创建安全组并添加安全组规则。
在创建RabbitMQ实例前,确保已存在可用的安全组。创建安全组的具体步骤,请参考创建安全组。
- 构建生产消费客户端。
本文以Linux系统的弹性云服务器(Elastic Cloud Server,简称ECS)作为生产消费客户端。在创建RabbitMQ实例前,请先创建开启弹性公网IP的ECS、安装JDK以及配置环境变量。
- 登录管理控制台,在左上角单击,选择“计算 > 弹性云服务器”,创建一个ECS实例。
创建ECS的具体步骤,请参考购买弹性云服务器。如果您已有可用的ECS,可重复使用,不需要再次创建。
- 使用root用户登录ECS。
- 安装Java JDK,并配置JAVA_HOME与PATH环境变量。
- 下载Java JDK。
ECS默认自带的JDK可能不符合要求,例如OpenJDK,需要配置为Oracle的JDK,可至Oracle官方下载页面下载Java Development Kit 1.8.111及以上版本。
- 解压Java 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”,然后输入以下命令,按“Enter”,保存并退出“.bash_profile”文件。
:wq
- 执行如下命令使修改生效。
source .bash_profile
- 查看Java JDK是否安装成功。
java -version
回显信息中包含如下信息,表示Java JDK安装成功。java version "1.8.0_321"
- 下载Java JDK。
- 登录管理控制台,在左上角单击,选择“计算 > 弹性云服务器”,创建一个ECS实例。
步骤二:创建RabbitMQ实例
- 进入购买RabbitMQ实例页面。
- 在“快速购买”页签,设置实例基础配置,如图2所示,配置详情请参考表2。
- 设置实例规格和存储空间,如图3所示,配置详情请参考表3。
- 设置实例网络环境信息,如图4所示,配置详情请参考表4。
- 设置实例的访问方式,保持默认即可。
- 设置实例的认证方式,如图5所示,配置详情请参考表5。
- 设置实例高级配置,如图6所示,配置详情请参考表6,其他参数保持默认设置。
- 单击“确认订单”,进入规格确认页面。
- 确认实例信息无误且阅读并同意《华为云用户协议》后,提交请求。
- 在实例列表页面查看实例是否创建成功。
创建实例大约需要3到15分钟,此时实例的“状态”为“创建中”。
- 当实例的“状态”变为“运行中”时,说明实例创建成功。
- 当实例的“状态”变为“创建失败”,请删除创建失败的RabbitMQ实例,然后重新购买。如果重新购买仍然失败,请联系客服。
- 实例创建成功后,单击实例名称,进入实例详情页。
- 在“连接信息”区域,查看并记录连接地址。
图7 连接地址
步骤三:连接实例生产消费消息
- 进入ECS的“root”目录下,下载RabbitMQ-Tutorial.zip示例工程代码。
wget https://dms-demo.obs.cn-north-1.myhuaweicloud.com/RabbitMQ-Tutorial.zip
“/root”为示例工程代码存放路径,请根据实际情况修改。
- 解压RabbitMQ-Tutorial.zip压缩包。
unzip RabbitMQ-Tutorial.zip
- 进入RabbitMQ-Tutorial目录,该目录下包含预编译好的jar文件。
cd RabbitMQ-Tutorial
- 运行生产消息示例。
java -cp .:rabbitmq-tutorial.jar Send ${host} ${port} ${user} ${password}
参数说明如下:
生产消息示例如下:
[root@ecs-test RabbitMQ-Tutorial]# java -cp .:rabbitmq-tutorial.jar Send 192.168.xx.40 5672 test Zxxxxxxs [x] Sent 'Hello World!' [root@ecs-test RabbitMQ-Tutorial]# java -cp .:rabbitmq-tutorial.jar Send 192.168.xx.40 5672 test Zxxxxxxs [x] Sent 'Hello World!'
- 运行消费消息示例。
java -cp .:rabbitmq-tutorial.jar Recv ${host} ${port} ${user} ${password}
参数说明如下:
消费消息示例如下:
[root@ecs-test RabbitMQ-Tutorial]# java -cp .:rabbitmq-tutorial.jar Recv 192.168.xx.40 5672 test Zxxxxxxs [*] Waiting for messages. To exit press CTRL+C [x] Received 'Hello World!' [x] Received 'Hello World!'
如需停止消费使用Ctrl+C命令退出。
相关信息
- 了解RabbitMQ实例的相关概念,请参考RabbitMQ基本概念。
- 了解RabbitMQ实例的价格,请参考分布式消息服务RabbitMQ版价格详情。
- 登录RabbitMQ Web UI,请参考连接RabbitMQ管理地址。
- 查看RabbitMQ实例的监控指标,请参考查看RabbitMQ监控数据。