更新时间:2022-03-29 11:51:14 来源:极悦 浏览2451次
消息队列是一种异步服务到服务通信的形式,用于无服务器和微服务架构。在消息队列中,消息的发送者和接收者不需要同时交互,消息被保留在Java队列中,直到接收者检索它们。
消息队列可用于解耦重量级处理、缓冲或批处理工作以及平滑尖峰工作负载。
更好的性能
消息队列支持异步通信,这意味着产生和使用消息的端点与队列交互,而不是彼此交互。生产者可以将请求添加到队列中,而无需等待它们被处理。消费者仅在消息可用时才处理它们。系统中的任何组件都不会停止等待另一个优化数据流。
提高可靠性
队列使您的数据持久化,并减少系统不同部分脱机时发生的错误。通过使用消息队列分隔不同的组件,您可以创建更多的容错性。如果系统的一部分永远无法访问,另一部分仍然可以继续与队列交互。队列本身也可以镜像以获得更高的可用性。
粒度可扩展性
消息队列可以在您需要的地方精确扩展。当工作负载达到峰值时,应用程序的多个实例都可以将请求添加到队列中,而不会发生冲突。随着这些传入请求的队列变长,您可以将工作负载分配给一组消费者。生产者、消费者和队列本身都可以按需增长和收缩。
简化解耦
消息队列消除了组件之间的依赖关系,并显着简化了解耦应用程序的编码。软件组件不受通信代码的影响,而是可以设计为执行离散的业务功能。
消息队列是一种非常简单的解耦Java分布式系统的方法,无论您使用的是单体应用程序、微服务还是无服务器架构。
点对点
点对点意味着消息通过队列从一个应用程序(生产者/发送者)发送到另一个应用程序(消费者/接收者)。可以有多个消费者在一个队列上监听,但只有其中一个可以接收消息。因此,它是点对点或一对一。
发布/订阅
消息队列服务器有多种语言版本。例如 Erlang (RabbitMQ)、C (beanstalkd)、Ruby (Starling 或 Sparrow)、Scala (Kestrel、Kafka) 和 Java (ActiveMQ)。选择特定的消息队列服务器完全取决于用例。
另一方面,发布/订阅是一种消息传递模型,其中消息通过主题发送给多个消费者(或订阅者)。主题是发布者和订阅者之间的链接。订阅者可能会或可能不会确认发布的消息。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习