从消息传递的角度来看,像kafka,rabbit,hornet mq,activemq等系统...... pub/sub和prod/con之间是否存在差异,还是可以互换使用?
Can*_*ell 19
发布/订阅和生产者/消费者模型之间存在差异。
发布/订阅:订阅者订阅发布者。发布者发布的每条消息都会发送给所有订阅者。也就是说,所有订阅者都会收到相同的消息。(想想报纸或杂志订阅。所有订阅者都会收到相同的杂志或报纸)
生产者/消费者:生产者产生的每条消息都将由一个消费者消费。这是一种将工作负载分配给多个消费者的机制。(想想超市的几个收银机。每个顾客去一个收银机。顾客就像产生的消息,收银机是消费者)
虽然发布/订阅和生产者/消费者术语都与消息传递相关,但它们是不同的,不能互换使用.
发布/订阅是一种消息传递模式,其中将发布分发给多个接收者.生产者是消息的发送者,消费者是消息的接收者.生产者和消费者是发布/订阅和点对点消息传递模式的组成部分.
希望这可以帮助.
小智 9
在生产者消费者中,生产者产生的消息只能被一个消费者消费。即使有 n 个消费者,每条消息也只会被一个消费者消费。向n个消费者产生n条消息,每条消息将被一个消费者消费(循环算法)。
与发布者订阅者相反,发布者生成的消息由订阅特定队列的所有订阅者使用。发布者生成消息,而订阅者消费消息。消息发布在订阅队列中。
小智 7
根据我的理解 - Prod/Consu - 生产者生产,消费者消费生产的任务。- 发布者/订阅者 - 仅当订阅者订阅了发布者时,发布者才会生成任务,订阅者才会使用生成的任务。
两者可以互换,但后一种在架构实际用例方面更有意义。仅在根据订阅协议订阅时才进行生产和发布。
谢谢