转载

初探MQ消息服务(一)

用于以分布式应用或系统中的异步、松耦合、可靠、可扩展、安全通信的一类软件。 MOM的总体思想是它作为消息发送方和消息接收方之间的消息中介。这种中介提供了一种全新水平的松耦合方式。

JMS (Java消息服务)

Java平台面向MOM的技术规范。类似于 JDBC 和关系型数据库通信方式的抽象。

消息 产生——>发送——>接收——>处理

初探MQ消息服务(一)
  • Provider:纯 Java 语言编写的 JMS 接口实现(比如 ActiveMQ 就是)
  • Domains:消息传递方式,包括点对点(P2P)、发布/订阅(Pub/Sub)两种
  • Connection factory:客户端使用连接工厂来创建与 JMS provider 的连接
  • Destination:消息被寻址、发送以及接收的对象

消息域

P2P(点对点) 使用 queue 作为 Destination,消息可以被同步或异步的发送和接收,每个消息只会给一个 Consumer 传送一次。

Consumer 可以使用 MessageConsumer.receive() 同步地接收消息,也可以通过使用MessageConsumer.setMessageListener() 注册一个 MessageListener 实现异步接收。

多个 Consumer 可以注册到同一个 queue 上,但一个消息只能被一个 Consumer 所接收,然后由该 Consumer 来确认消息。并且在这种情况下,Provider 对所有注册的 Consumer 以 轮询 的方式发送消息

初探MQ消息服务(一)

Pub/Sub(发布/订阅) 使用 topic 作为 Destination,发布者向 topic 发送消息,订阅者注册接收来自 topic 的消息。发送到 topic 的任何消息都将自动传递给所有订阅者。接收方式(同步和异步)与 P2P 域相同。 除非显式指定,否则 topic 不会为订阅者保留消息。当然,这可以通过持久化(Durable)订阅来实现消息的保存。这种情况下,当订阅者与 Provider 断开时,Provider 会为它存储消息。当持久化订阅者重新连接时,将会收到所有的断连期间未消费的消息

初探MQ消息服务(一)
原文  https://juejin.im/post/5e899fbee51d4546db436df9
正文到此结束
Loading...