“消息队列”是指存储正在发送的消息的容器。队列的主要用途是:
提供路由并保证消息传递。如果发送消息时收件人不可用,则消息队列会保留该消息,直到消息成功传递为止。消息队列中间件是分布式系统中的重要组件,主要解决应用隔离、异步消息传递、流量减少等问题,提供高性能、高可用性、可扩展性和最终一致的架构。示例:ActiveMQ、RabbitMQ、ZeroMQ、Kafka、MetaMQ、RocketMQ
主要角色
生产者:消息生产者。负责生成消息并将其发送给代理。 Broker:消息处理中心。负责保存消息、检查消息、重试消息等。通常包含多个队列。消费者:消息消费者。它负责从代理检索消息并进行相应的处理。
消息队列两种模式
JMS规范目前支持两种消息模型:点对点(队列)和发布/订阅(发布/订阅、主题)。
1.点对点模式:无重复消费
此时,只有一个消费者可以消费该消息,该消息将从队列中移除,其他消费者无法处理该消息。多个生产者可以将消息发送到同一个消息队列。如果某个消费者处理消息失败,它必须将消息返回到队列中,其他消费者才能继续处理。 2.发布/订阅模型:可重复消费。多个订阅者可以同时检索和处理一条消息。
临时订阅仅在使用者运行时存在。当消费者终止时,其相应的订阅和未处理的消息将丢失。除非删除,否则持久订阅始终存在。消费者终止后,消息系统继续维持订阅并可以继续处理后续消息。
应用场景以及特点
异步、应用隔离、流量断开。
异步
应用解耦
流量削锋
使用消息队列作为通用“载体”。
版权声明:本文转载于今日头条,版权归作者所有。如有侵权,请联系本站编辑删除。