从消息传播的角度来看,像kafka,rabbit,hornet mq,activemq等系统...... pub / sub和prod / con之间是否存在差异,还是可以互换使用?
答案 0 :(得分:8)
虽然发布/订阅和制作者/消费者术语都与消息传递相关,但它们是不同的,不能互换使用。
发布/订阅是一种消息传递模式,其中将发布分发给多个接收者。生产者是消息的发送者,消费者是消息的接收者。生产者和消费者是发布/订阅和点对点消息传递模式的组成部分。
希望这有帮助。
答案 1 :(得分:2)
在生产者消费者中,生产者生产的消息只被一个消费者消费。即使有 n 个消费者,每条消息也只会被一个消费者消费。向n个消费者生产n条消息,每条消息由一个消费者生产(循环算法)。
与发布者订阅者相反,发布者产生的消息被所有订阅了特定队列的订阅者消费。发布者生产消息而订阅者消费消息。消息发布在订阅队列中。
答案 2 :(得分:1)
据我了解 -产品/生产者-生产者生产,消费者消费生产的任务。 -发布者/订阅者-发布者产生并且只有订阅者被订阅到发布者时,订阅者才使用产生的任务。
两者都可以互换,但从架构实际用例的角度来看,后者才有意义。只有根据订阅协议进行订阅时,才可以生产和发布。
谢谢
答案 3 :(得分:0)
生产者消费者基本上是一个问题,例如生产者生产某种东西而消费者消费了,但是消费者应该如何消费是一个问题。因此,发布者-订阅者是解决此问题的体系结构或模式。
答案 4 :(得分:0)
发布/订阅模型与生产者/消费者模型之间存在差异。
发布/订阅:订阅者订阅发布者。发布者发布的每条消息都发送给所有订阅者。即,所有订户都收到相同的消息。 (考虑订阅报纸或杂志。所有订阅者都收到同一本杂志或报纸)
生产者/消费者:生产者产生的每条消息将由一个消费者使用。这是一种将工作负载分配给多个使用者的机制。 (考虑一下超市中的几个收银机。每个客户去一个收银机。客户就像所产生的消息,收银机就是消费者)