03、RocketMQ实战:RocketMQ的系统架构

分布式消息队列RocketMQ

二、 RocketMQ的安装与启动

2.2)RocketMQ的系统架构

*

RocketMQ架构上主要分为四部分构成:

2、 2.1)Producer;

消息生产者,负责生产消息。Producer通过MQ的负载均衡模块选择相应的Broker集群队列进行消息投递,投递的过程支持快速失败并且低延迟。

例如,业务系统产生的日志写入到MQ的过程,就是消息生产的过程;

再如,电商平台中用户提交的秒杀请求写入到MQ的过程,就是消息生产的过程

RocketMQ中的消息生产者都是以生产者组(Producer Group)的形式出现的,生产者组是同一类生产者的集合,这类Producer发送相同Topic类型的消息,一个生产者组可以同时发送多个主题的消息。

2、 2.2)Consumer;

消息消费者,负责消费消息。一个消息消费者会从Broker服务器中获取到消息,并对消息进行相关业务处理。

例如,QoS系统从MQ中读取日志,并对日志进行解析处理的过程就是消息消费的过程。 再如,电商平台的业务系统从MQ中读取到秒杀请求,并对请求进行处理的过程就是消息消费的 过程。

RocketMQ中的消息消费者都是以消费者组(Consumer Group)的形式出现的,消费者组是同一类消费者的集合,这类Consumer消费的是同一个Topic类型的消息。

消费者组使得在消息消费方面,实现负载均衡(将一个Topic中的不同的Queue平均分配给同一个Consumer Group的不同的Consumer,注意,并不是将消息负载均衡)和容错(一个Consmer挂了,该Consumer Group中的其它Consumer可以接着消费原Consumer消费的Queue)的目标变得非常容易。

*

消费者组中Consumer的数量应该小于等于订阅Topic的Queue数量,如果超出Queue数量,则多出的 Consumer将不能消费消息。

*

不过,一个Topic类型的消息可以被多个消费者组同时消费。

1)消费者组只能消费一个Topic的消息,不能同时消费多个Topic消息

2)一个消费者组中的消费者必须订阅完全相同的Topic

2、 2.3)NameServer;

2、 2.3.1)功能介绍;

Name