多语言展示
当前在线:129今日阅读:195今日分享:14

如何理解分布式消息组件的生产和消费概念

分布式消息组件中,生产和消费是两个高频出现的词汇,如何理解其相关概念。
方法/步骤
1

生产组是一类Producer的集合名称,这类Producer通常发送一类消息,且发送逻辑一致,一般由业务系统负责产生消息。

2

消费组是一类Consumer的集合名称,这类Consumer通常消费一类消息,且消费逻辑一致,一般是后台系统负责异步消费。消费进度存储在消费组上。

3

一个消费者实例代表消费组的一员,不同的消费者用不同的实例名字创建。一个生产者实例代表生产者的一员,不同的生产者用不同的实例名字创建。

4

PUSH消费是Consumer的一种,应用通常向Consumer对象注册一个Listener接口,一旦收到消息,Consumer对象立刻回调Listener接口方法。

5

PULL消费是Consumer的一种,应用通常主动调用Consumer的拉消息方法从Broker拉消息,主动权由应用控制,但实时性取决于应用主动拉取的频率。在PULL消费中,线程由应用自主决定。

6

在广播消费模式下,一条消息被多个Consumer消费,即使这些Consumer属于同一个Consumer Group,消息也会被Consumer Group中的每个Consumer都消费一次,广播消费中的Consumer Group概念可以认为在消息划分方面无意义。

7

一个Topic 可以被一个或多个Consumer Group 消费, 每个Consumer Group有自己独立的消费进度,消费进度是保存在服务端的。一个Consumer Group中的消费者实例可以平均分摊消费消息,做到负载均衡。

推荐信息