JMS中点对点和发布 订阅模型的区别
点对点消息模型和发布订阅消息模型是 Java 消息服务 (JMS) 支持的两种类型的消息模块/类型/域。这两个是支持异构系统之间的异步消息传递的编程模型。
有一些重要的术语将帮助我们更好地理解两种消息传递模型类型之间的区别:
- JMS 目的地是一个暂存区,它充当客户端使用的消息的源和所产生消息的目标/目的地。
- JMS 生产者是发送消息的 JMS 客户端。
- JMS 消费者是接收消息的 JMS 客户端。
- JMS 客户端既可以是消息的生产者,也可以是消息的消费者。
- 时间依赖只是意味着如果生产者已经为消费者未订阅的某个主题发布了一些消息,那么消费者将不会收到该主题的消息。
下面来看看这两种消息传递模型类型之间的区别:
点对点消息模型 (P2P) | 发布/订阅模型(Pub/sub) |
---|---|
点对点消息模型 (P2P) JMS 目标是队列。 | 发布/订阅模型中的 JMS目标是一个主题。 |
点对点消息模型 (P2P) JMS 生产者是发送者。 | 发布/订阅模型中的 JMS 生产者是发布者。 |
点对点消息模型 (P2P) JMS 消费者是接收者。 | 发布/订阅模型中的 JMS 消费者是订阅者。 |
点对点消息模型 (P2P)处消息仅由 1 个 JMS 使用者接收。 | 在发布/订阅模型中,消息可以被多个 JMS 消费者接收。 |
在点对点消息模型 (P2P)中,JMS 消费者在收到消息时向生产者发送确认。 | 在发布/订阅模型中,JMS 使用者在接收到消息时不会发送任何确认。 |
点对点消息模型 (P2P)存在接收者接收消息的时间依赖性。 | 在发布/订阅模型中,生产者和消费者之间没有时间依赖关系。 |
点对点消息模型 (P2P)模型是基于拉的,这意味着接收者负责请求发送者发送的新消息。 | 发布/订阅模型是基于推送的,这意味着消息会自动传递给消费者,而无需他们请求新消息。 |
示例:发送传真/语音信息。 | 示例:报纸。 |