背景知识
消息队列RocketMQ版
产品地址:https://www.aliyun.com/product/rocketmq?spm=a2c6h.13858375.0.0.6171254aWbFPWT
消息队列RocketMQ版是阿里云基于Apache RocketMQ构建的低延迟、高并发、高可用、高可靠的分布式“消息、事件、流”统一处理平台。RocketMQ自诞生以来一直服务阿里集团13年,历经多次双十一万亿级数据洪峰稳定性验证。企业版RocketMQ在稳定性、弹性能力、企业级特性、服务SLA等方面拥有更多优势。
关键术语
实例(Instance)
消息队列RocketMQ版中用户运维消息产品的顶层资源,对应一个物理集群。使用消息之前必须创建实例,并在实例下创建对应的逻辑资源。
主题(Topic)
消息队列RocketMQ版中消息传输和存储的顶层容器,用于标识同一类业务逻辑的消息。主题通过TopicName来做唯一标识和区分。更多信息,请参见主题(Topic)。
消费者分组(ConsumerGroup)
消费者分组是消息队列RocketMQ版系统中承载多个消费行为一致的消费者的负载均衡分组。和消费者不同,消费者分组并不是运行实体,而是一个逻辑资源。在消息队列RocketMQ版中,通过消费者分组内初始化多个消费者实现消费性能的水平扩展以及高可用容灾。更多信息,请参见消费者分组(ConsumerGroup)。
消费者(Consumer)
消费者是消息队列RocketMQ版中用来接收并处理消息的运行实体。消费者通常被集成在业务系统中,从消息队列RocketMQ版服务端获取消息,并将消息转化成业务可理解的信息,供业务逻辑处理。更多信息,请参见消费者(Consumer)。
消息(Message)
消息是消息队列RocketMQ版中的最小数据传输单元。生产者将业务数据的负载和拓展属性包装成消息发送到消息队列RocketMQ版服务端,服务端按照相关语义将消息投递到消费端进行消费。更多信息,请参见消息(Message)。
实验步骤
创建RocketMQ Topic、Group资源
双击打开远程桌面的Chronmium网页浏览器。
https://ons.console.aliyun.com/overview
在左侧导航栏中,单击实例列表。
在实例列表页面,找到实验室分配的消息队列RocketMQ版实例,单击实例ID。
在左侧导航栏中,单击Topic管理。
在Topic管理页面,单击创建Topic。
在创建Topic面板,根据如下说明配置参数,然后单击确定。
主题名称:输入Topic名称,例如demo_topic。
消息类型:本实验是基本消息收发体验,请选择普通消息。
描述:输文字描述,用于标识这个topic的作用,例如test。
在左侧导航栏中,单击Group管理。
在Group管理页面,单击创建Group。
在创建Group面板,根据如下说明配置参数,然后单击确定。
GroupID:输入Group名称,例如demo_group。
投递顺序性:本实验是基本消息收发体验,请选择并发投递。
描述:输文字描述,用于标识这个group的作用,例如test。
登录云服务器ECS,运行消费消息程序
切换至Web Terminal,自动连接到云服务器ECS。
执行如下命令,运行消费者程序,观察消息消费情况。
java -cp demo.jar -Dendpoints=xxx -Dtopic=xxx -Dgroup=xxx workshop.ConsumeMessageDemo
预期的输出结果如下,因为没运行消息发送程序,所以消费者程序中没有可以消费的消息。
运行消息发送程序
新增一个终端窗口,执行如下命令,运行消息发送程序。
java -cp demo.jar -Dendpoints=xxx -Dtopic=xxx -Dnum=xxx workshop.ProduceMessageDemo
预期的输出结果如下。
切换至上一步的终端中,在消费者程序中预期的输出结果如下。
根据上述消息发送和消费消息两个运行步骤,可以看出消息队列RocketMQ版支持在多个客户端之间可靠传输消息,实现业务解耦。