Difference between Point-To-Point and Publish/Subscribe JMS Messaging Models
Point-to-Point (PTP) and Publish/Subscribe (Pub/Sub) are two types of messaging models or messaging domains provided by JMS. Both of these have significant differences and should be used as per the application’s requirement. For instance, point-to-point messaging should be used when each message delivered by a producer should be consumed successfully by one receiver andpublish/subscribe messaging should be used when each message delivered by a producer should be consumed by zero or more receivers.
Here is a more detailed difference between the two messaging models:
|
Point-to-Point (Queue) |
Publish-Subscribe (Topic) |
1. | Each message is addressed to a virtual channel known as Queue | Each message is addressed to a virtual channel know as Topic |
2. | One-to-One i.e. a message delivered by a producer is consumed by only one receiver | One-to-Many i.e. a message delivered by a producer (publisher) can be consumed by zero or more receivers (subscribers) |
3. | A queue can have multiple receivers, but each message is consumed by only one receiver | A topic can have multiple receivers and every receiver receives a copy of each message |
4. | Pull-based model i.e. client polls the queue for new messages and sends the request | Push-based model i.e. messages are broadcasted to all the subscribers without them having to poll the topic |
5. | Messages are retained in the queue until they are delivered to the receiver. The receiver can fetch the message even if it was not running when producer sent the messages. | Messages are retained in the topic until they are delivered to the “current“ subscribers.There is an option to have durable subscriptions in pub-sub model which allows the subscriber to dis-connect, reconnect again and collect the messages that were delivered when it was not active. |
6. | The receiver acknowledges the successful processing of a message. | Acknowledgment is optional. |
Thus whether to use queue or topic as JMS message destination, depends solely on the requirements of a specific application.
转自: http://verticalhorizons.in/difference-between-point-to-point-and-publishsubscribe-jms-messaging-models/