消息队列RocketMQ版:基础消息收发功能体验

更新时间:
复制为 MD 格式

本场景将介绍如何基于消息队列RocketMQ版实现基础消息收发功能。

场景简介

本实验主要介绍如何在一台配置了Alibaba Cloud Linux 3操作系统的ECS实例(云服务器)和消息队列RocketMQ版实例,实现基础消息收发功能。

背景知识

本场景主要涉及以下云产品和服务:

  • 云服务器ECS

    云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。一台云服务器ECS实例等同于一台虚拟服务器,内含CPU、内存、操作系统、网络配置、磁盘等基础的组件。云服务器ECS免去了您采购IT硬件的前期准备,让您像使用水、电、天然气等公共资源一样便捷、高效地使用服务器,实现计算资源的即开即用和弹性伸缩。阿里云ECS持续提供创新型服务器,解决多种业务需求,助力您的业务发展。

  • 云消息队列RocketMQ

    云消息队列RocketMQ版是阿里云基于Apache RocketMQ构建的低延迟、高并发、高可用、高可靠的分布式“消息、事件、流”统一处理平台。RocketMQ自诞生以来一直服务阿里集团十余年,历经多次双十一万亿级数据洪峰稳定性验证。

前提条件

云起实验室将在您的账号下开通本次实操资源,资源按量付费,需要您自行承担本次实操的云资源费用。

重要

本实验预计一个小时产生费用3元。如果您调整了资源规格、使用时长,或执行了本方案以外的操作,可能导致费用发生变化,请以控制台显示的实际价格和最终账单为准。

进入实操前,请确保阿里云账号满足以下条件:

  • 已通过实名认证并且账户余额大于100。

  • 云资源产生的费用需您自行承担,云起实验室不会向您征收额外费用。

  • 所有实验操作将保留至您的账号,请谨慎操作。

  • 实操结束后,您可以选择继续付费保留资源,或参考手册自动/手动释放资源。

创建实验资源

  1. 在实验页面,勾我已阅读并同意《阿里云云起实践平台服务协议》我已授权阿里云云起实践平台创建、读取及释放实操相关资源后,单击开始实操

  2. 创建资源需要5分钟左右的时间,请您耐心等待。

  3. 云产品资源列表,您可以查看本场景涉及的云产品资源信息。

    image

安全设置

资源创建完成后,为了保护您阿里云主账号上资源的安全,请您重置云服务器ECS的登录密码和设置安全组端口。

  1. 重置云服务器ECS的登录密码。

    1. 云产品资源列表的ECS云服务器区域,单击管理

      image

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

      image

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

      image

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

      image

  2. 设置安全组端口。

    1. 云产品资源列表的安全组区域,单击管理

      image

    2. 访问规则区域的入方向中,添加SSH(22)端口。

      重要

      添加端口时,授权对象建议选择您的本机IP地址

      image

  3. 重置RocketMQ密码。

    1. 云产品资源列表的消息队列RocketMQ区域,单击管理image

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

创建RocketMQ Topic、Group资源

本步骤将指导您在RocketMQ实例上创建用于收发消息的TopicGroup资源。

  1. 云产品资源列表的消息队列RocketMQ区域,单击管理

    image

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

    image

  3. 创建Topic面板,根据如下说明配置参数,然后单击确定

    • 主题名称:输入Topic名称,例如demo_topic。

    • 消息类型:本实验是基本消息收发体验,请选择普通消息。

    • 描述:输文字描述,用于标识这个topic的作用,例如test。

    image

  4. 在左侧导航栏中,单击Group管理,在Group管理页面,单击创建Group

    image

  5. 在创建Group面板,根据如下说明配置参数,然后单击确定。

    • GroupID:输入Group名称,例如demo_group。

    • 投递顺序性:本实验是基本消息收发体验,请选择并发投递。

    • 描述:输文字描述,用于标识这个group的作用,例如test。

    image

登录云服务器ECS,运行消费消息程序

本步骤将指导您如何在云服务器ECS上运行消费消息程序。

  1. 云产品资源列表的ECS云服务器区域,单击远程连接

    image

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

    image

  3. 执行如下命令,安装JDK。

    yum -y install java-1.8.0-openjdk-devel.x86_64
  4. 执行如下命令,查看是否安装成功。

    java -version

    返回如下结果,则表示JDK安装成功。

  1. 执行如下命令,检查是否已下载Demo应用。

    md5sum demo.jar

    返回如下结果,则表示已经下载Demo。

    image

    否则请通过如下命令完成下载:

    wget https://developer-labfileapp.oss-cn-hangzhou.aliyuncs.com/RocketMQ/demo.jar
  2. 执行如下命令,运行消费者程序,观察消息消费情况。

    说明

    在本实验中,已在云服务器ECS中为您准备好Demo代码。

    java -cp demo.jar -Dendpoints=xxx -Dtopic=xxx -Dgroup=xxx  workshop.ConsumeMessageDemo

    其中,命令中的部分参数需要根据实例资源的实际信息输入.

    参数

    说明

    -Dendpoints

    实例接入点信息。在RocketMQ控制台 > 实例详情 > TPC协议接入点 > VPC专有网络的接入点信息中查看。

    VPC专有网络的接入点信息格式一般为rmq-cn-{xxx}-vpc.cn-{xxx}.rmq.aliyuncs.com:8080。

    在本实验中,为了方便用户的操作,您可在云产品资源列表中消息队列RocketMQ区域获取接入点信息。

    image

    -Dtopic

    实际订阅消费的主题名称,输入创建的Topic名称。

    -Dgroup

    实际订阅消费使用的消费者分组,输入创建的Group名称。

    预期的输出结果如下,因为没运行消息发送程序,所以消费者程序中没有可以消费的消息。

运行消息发送程序

本步骤将指导您如何在云服务器ECS上运行消息发送程序。

  1. 在终端一窗口的右上角,单击 图标,新增一个终端窗口。

  1. 在终端二窗口中,执行如下命令,运行消息发送程序。

    说明

    在本实验中,已在云服务器ECS中为您准备好Demo代码。

    java -cp demo.jar -Dendpoints=xxx -Dtopic=xxx -Dnum=xxx  workshop.ProduceMessageDemo

    其中,命令中的部分参数需要根据实例资源的实际信息输入。

    参数

    说明

    -Dendpoints

    实例接入点信息。在RocketMQ控制台 > 实例详情 > TPC协议接入点 > VPC专有网络的接入点信息中查看。

    VPC专有网络的接入点信息格式一般为rmq-cn-{xxx}-vpc.cn-{xxx}.rmq.aliyuncs.com:8080。

    在本实验中,为了方便用户的操作,您可在云产品资源列表中查到VPC专有网络的接入点信息。

    image

    -Dtopic

    实际发送的主题名称,输入创建的Topic名称。

    -Dnum

    输入希望发送的消息条数,例如10,代表10条消息

    预期的输出结果如下。

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

  3. 根据上述消息发送和消费消息两个运行步骤,可以看出消息队列RocketMQ版支持在多个客户端之间可靠传输消息,实现业务解耦。

清理资源

  • 在完成实验后,如果无需继续使用资源,选择不保留资源,单击结束实操。在结束实操对话框中,单击确定

    image

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

    image