写点什么

消息队列的两种模式

发布于: 2021 年 05 月 10 日
消息队列的两种模式

消息队列包括两种模式,点对点模式(point to point, queue)和发布/订阅模式(publish/subscribe,topic)

1. 点对点模式

点对点模式下包括三个角色:

消息队列

发送者 (生产者)

接收者(消费者)



消息发送者生产消息发送到 queue 中,然后消息接收者从 queue 中取出并且消费消息。消息被消费以后,queue 中不再有存储,所以消息接收者不可能消费到已经被消费的消息。

点对点模式特点:

·        每个消息只有一个接收者(Consumer)(即一旦被消费,消息就不再在消息队列中);

·        送者和接发收者间没有依赖性,发送者发送消息之后,不管有没有接收者在运行,都不会影响到发送者下次发送消息;

·        接收者在成功接收消息之后需向队列应答成功,以便消息队列删除当前接收的消息;

2. 发布/订阅模式

发布/订阅模式下包括三个角色:

角色主题(Topic)

发布者(Publisher)

订阅者(Subscriber)



发布者将消息发送到 Topic,系统将这些消息传递给多个订阅者。

发布/订阅模式特点:

·        每个消息可以有多个订阅者;

·        发布者和订阅者之间有时间上的依赖性。针对某个主题(Topic)的订阅者,它必须创建一个订阅者之后,才能消费发布者的消息。

·        为了消费消息,订阅者需要提前订阅该角色主题,并保持在线运行;


3. Kafka

apache kafka 是一个分布式发布-订阅消息系统和一个强大的队列,可以处理大量的数据,并使能够将消息从一个端点传递到另一个端点,kafka 适合离线和在线消息消费。kafka 消息保留在磁盘上,并在集群内复制以防止数据丢失。kafka 构建在 zookeeper 同步服务之上。它与 apache 和 spark 非常好的集成,应用于实时流式数据分析。


4. kafka 的好处

可靠性:分布式的,分区,复本和容错的。


可扩展性:kafka 消息传递系统轻松缩放,无需停机。


耐用性:kafka 使用分布式提交日志,这意味着消息会尽可能快速的保存在磁盘上,因此它是持久的。


性能:kafka 对于发布和定于消息都具有高吞吐量。即使存储了许多 TB 的消息,他也爆出稳定的性能。


kafka 非常快:保证零停机和零数据丢失。

发布于: 2021 年 05 月 10 日阅读数: 19
用户头像

专注于大数据技术研究 2020.11.10 加入

运营公众号:五分钟学大数据。大数据领域原创技术号,深入大数据技术

评论 (1 条评论)

发布
用户头像
或者可以说,broker中topic只用一个partition(replica不考虑),之后消费组中只放一个Consumer消费此topic。

消息发送者生产消息发送到 queue 中,然后消息接收者从 queue 中取出并且消费消息。消息被消费以后,queue 中不再有存储,所以消息接收者不可能消费到已经被消费的消息。

2021 年 05 月 10 日 23:42
回复
没有更多了
消息队列的两种模式