【发布时间】:2017-07-17 05:55:45
【问题描述】:
从消息传递的角度来看,像 kafka、rabbit、hornet mq、activemq 等系统...... pub/sub 和 prod/con 之间有区别还是可以互换使用?
【问题讨论】:
标签: message-queue
从消息传递的角度来看,像 kafka、rabbit、hornet mq、activemq 等系统...... pub/sub 和 prod/con 之间有区别还是可以互换使用?
【问题讨论】:
标签: message-queue
在生产者消费者中,生产者产生的消息只被一个消费者消费。即使有 n 个消费者,每条消息也只会被一个消费者消费。向 n 个消费者产生 n 条消息,每条消息将由一个消费者产生(循环算法)。
与发布者订阅者相反,发布者产生的消息被所有订阅特定队列的订阅者消费。发布者产生消息,而订阅者消费消息。消息在订阅队列中发布。
【讨论】:
发布/订阅和生产者/消费者模型之间存在差异。
发布/订阅:订阅者订阅发布者。 Publisher 发布的每条消息都会发送给所有订阅者。也就是说,所有订阅者都会收到相同的消息。 (想想报纸或杂志订阅。所有订阅者都会收到相同的杂志或报纸)
生产者/消费者:生产者产生的每条消息将被单个消费者消费。这是一种将工作负载分配给多个消费者的机制。 (想想超市里的几个收银机。每个顾客去一个收银机。顾客就像产生的消息,收银机就是消费者)
【讨论】:
consumer group 是特定于某些消息代理(例如 Kafka)的术语。
据我了解 - Prod/Consu - 生产者生产,消费者消费生产的任务。 - Publisher/Subscriber - 仅当 Subscriber 订阅 Publisher 时,Publisher 才会产生,Subscriber 才会使用产生的任务。
两者都可以互换,但后一个在架构实际用例方面是有意义的。仅当基于订阅协议订阅时才生成和发布。
谢谢
【讨论】:
虽然发布/订阅和生产者/消费者这两个术语都与消息传递相关,但它们是不同的,不能互换使用。
发布/订阅是一种消息传递模式,其中将发布分发给多个接收者。生产者是消息的发送者,消费者是消息的接收者。生产者和消费者是发布/订阅和点对点消息传递模式不可或缺的一部分。
希望这会有所帮助。
【讨论】: