消息队列RocketMQ版:基础消息收发功能体验
本场景将介绍如何基于消息队列RocketMQ版实现基础消息收发功能。
场景简介
本实验主要介绍如何在一台配置了Alibaba Cloud Linux 3操作系统的ECS实例(云服务器)和消息队列RocketMQ版实例,实现基础消息收发功能。
背景知识
本场景主要涉及以下云产品和服务:
云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。一台云服务器ECS实例等同于一台虚拟服务器,内含CPU、内存、操作系统、网络配置、磁盘等基础的组件。云服务器ECS免去了您采购IT硬件的前期准备,让您像使用水、电、天然气等公共资源一样便捷、高效地使用服务器,实现计算资源的即开即用和弹性伸缩。阿里云ECS持续提供创新型服务器,解决多种业务需求,助力您的业务发展。
云消息队列RocketMQ版是阿里云基于Apache RocketMQ构建的低延迟、高并发、高可用、高可靠的分布式“消息、事件、流”统一处理平台。RocketMQ自诞生以来一直服务阿里集团十余年,历经多次双十一万亿级数据洪峰稳定性验证。
前提条件
云起实验室将在您的账号下开通本次实操资源,资源按量付费,需要您自行承担本次实操的云资源费用。
本实验预计一个小时产生费用3元。如果您调整了资源规格、使用时长,或执行了本方案以外的操作,可能导致费用发生变化,请以控制台显示的实际价格和最终账单为准。
进入实操前,请确保阿里云账号满足以下条件:
创建实验资源
在实验页面,勾选我已阅读并同意《阿里云云起实践平台服务协议》和我已授权阿里云云起实践平台创建、读取及释放实操相关资源后,单击开始实操。
创建资源需要5分钟左右的时间,请您耐心等待。
在云产品资源列表,您可以查看本场景涉及的云产品资源信息。

安全设置
资源创建完成后,为了保护您阿里云主账号上资源的安全,请您重置云服务器ECS的登录密码和设置安全组端口。
重置云服务器ECS的登录密码。
在云产品资源列表的ECS云服务器区域,单击管理。

在实例详情页签的基本信息区域,单击重置密码。

在重置实例密码对话框中,设置新密码和确认密码,重置密码的方式选择在线重置密码,配置SSH密码登录策略选择开启,单击确认修改。

返回如下结果,表示ECS实例root用户的登录密码重置成功。

设置安全组端口。
在云产品资源列表的安全组区域,单击管理。

在访问规则区域的入方向中,添加SSH(22)端口。
重要添加端口时,授权对象建议选择您的本机IP地址。

重置RocketMQ密码。
在云产品资源列表的消息队列RocketMQ版区域,单击管理。

在访问控制面板,选择智能身份识别标签页,单击修改密码,设置新密码和确认新密码,单击确定。

创建RocketMQ Topic、Group资源
本步骤将指导您在RocketMQ实例上创建用于收发消息的Topic和Group资源。
在云产品资源列表的消息队列RocketMQ版区域,单击管理。

在左侧导航栏中,单击Topic管理,在Topic管理页面,单击创建Topic。

在创建Topic面板,根据如下说明配置参数,然后单击确定。
主题名称:输入Topic名称,例如demo_topic。
消息类型:本实验是基本消息收发体验,请选择普通消息。
描述:输文字描述,用于标识这个topic的作用,例如test。
在左侧导航栏中,单击Group管理,在Group管理页面,单击创建Group。

在创建Group面板,根据如下说明配置参数,然后单击确定。
GroupID:输入Group名称,例如demo_group。
投递顺序性:本实验是基本消息收发体验,请选择并发投递。
描述:输文字描述,用于标识这个group的作用,例如test。
登录云服务器ECS,运行消费消息程序
本步骤将指导您如何在云服务器ECS上运行消费消息程序。
在云产品资源列表的ECS云服务器区域,单击远程连接。

在登录实例对话框中,输入用户自定义密码,单击确定。

执行如下命令,安装JDK。
yum -y install java-1.8.0-openjdk-devel.x86_64执行如下命令,查看是否安装成功。
java -version返回如下结果,则表示JDK安装成功。
执行如下命令,检查是否已下载Demo应用。
md5sum demo.jar返回如下结果,则表示已经下载Demo。

否则请通过如下命令完成下载:
wget https://developer-labfileapp.oss-cn-hangzhou.aliyuncs.com/RocketMQ/demo.jar执行如下命令,运行消费者程序,观察消息消费情况。
说明在本实验中,已在云服务器ECS中为您准备好Demo代码。
java -cp demo.jar -Dendpoints=xxx -Dtopic=xxx -Dgroup=xxx workshop.ConsumeMessageDemo其中,命令中的部分参数需要根据实例资源的实际信息输入.
参数
说明
-Dendpoints
实例接入点信息。在的接入点信息中查看。
VPC专有网络的接入点信息格式一般为rmq-cn-{xxx}-vpc.cn-{xxx}.rmq.aliyuncs.com:8080。
在本实验中,为了方便用户的操作,您可在云产品资源列表中消息队列RocketMQ版区域获取接入点信息。

-Dtopic
实际订阅消费的主题名称,输入创建的Topic名称。
-Dgroup
实际订阅消费使用的消费者分组,输入创建的Group名称。
预期的输出结果如下,因为没运行消息发送程序,所以消费者程序中没有可以消费的消息。

运行消息发送程序
本步骤将指导您如何在云服务器ECS上运行消息发送程序。
在终端一窗口的右上角,单击
图标,新增一个终端窗口。

在终端二窗口中,执行如下命令,运行消息发送程序。
说明在本实验中,已在云服务器ECS中为您准备好Demo代码。
java -cp demo.jar -Dendpoints=xxx -Dtopic=xxx -Dnum=xxx workshop.ProduceMessageDemo其中,命令中的部分参数需要根据实例资源的实际信息输入。
参数
说明
-Dendpoints
实例接入点信息。在的接入点信息中查看。
VPC专有网络的接入点信息格式一般为rmq-cn-{xxx}-vpc.cn-{xxx}.rmq.aliyuncs.com:8080。
在本实验中,为了方便用户的操作,您可在云产品资源列表中查到VPC专有网络的接入点信息。

-Dtopic
实际发送的主题名称,输入创建的Topic名称。
-Dnum
输入希望发送的消息条数,例如10,代表10条消息
预期的输出结果如下。

切换至终端窗口一,在消费者程序中预期的输出结果如下。

根据上述消息发送和消费消息两个运行步骤,可以看出消息队列RocketMQ版支持在多个客户端之间可靠传输消息,实现业务解耦。
清理资源
在完成实验后,如果无需继续使用资源,选择不保留资源,单击结束实操。在结束实操对话框中,单击确定。

在完成实验后,如果需要继续使用资源,选择付费保留资源,单击结束实操。在结束实操对话框中,单击确定。请随时关注账户扣费情况,避免发生欠费。













图标,新增一个终端窗口。


