Publish/Subscribe 对比 Producer/Consumer?

Publish/Subscribe vs Producer/Consumer?

从 Kafka、RabbitMQ、HornetQ、ActiveMQ 等系统的消息传递角度来看,pub/sub 和 prod/con 之间有区别吗?或者它们可以互换使用吗?

虽然 Publish/Subscribe 和 Producer/Consumer 术语都与消息传递有关,但它们是不同的,不能互换使用。

Publish/Subscribe 是一种消息传递模式,其中将发布分发给多个接收者。生产者是消息的发送者,消费者是消息的接收者。生产者和消费者是 Publish/Subscribe 和点对点消息传递模式的组成部分。

希望对您有所帮助。

据我了解 - Prod/Consu - 生产者生产,消费者消费生产的任务。 - Publisher/Subscriber - 仅当订阅者订阅了发布者时,发布者才生产并且订阅者使用生产的任务。

两者可以互换,但后者在架构实际用例方面有意义。仅在根据订阅协议订阅时才生产和发布。

谢谢

publish/subscribe 和 producer/consumer 型号之间存在差异。

Publish/Subscribe :订阅者订阅发布者。发布者发布的每条消息都会发送给所有订阅者。也就是说,所有订阅者都会收到相同的消息。 (想想报纸或杂志订阅。所有订阅者都会收到相同的杂志或报纸)

Producer/Consumer :生产者产生的每条消息将由单个消费者消费。这是一种将工作负载分配给多个消费者的机制。 (想想超市的几个收银台,每个顾客去一个收银台。顾客就像是生产出来的信息,收银台就是消费者)

在生产者消费者中,生产者生产的消息只被一个消费者消费。即使有 n 个消费者,每条消息也只会被一个消费者消费。向 n 个消费者生成 n 条消息,每条消息将由一个消费者生成(循环算法)。

相比之下,在发布者订阅者中,发布者产生的消息被所有订阅了特定队列的订阅者消费。发布者生产消息而订阅者消费消息。消息发布在订阅队列中。