上一篇地址:
http://blog.csdn.net/answer100answer/article/details/75807469
主题模式相比队列模式,在代码上仅仅一处不同,那就是创建目的地的不同。
生产者
完整代码见前一篇,现仅列出不同之处
private static final String topicName="topic-test";
Destination destination =session.createTopic(topicName);
消费者
private static final String topicName="topic-test";
Destination destination =session.createTopic(topicName);
结果:
注意:一定能要先启动消费者,即先订阅,后启动生产者,才能收到消息。 |
主题模式下,当启动多个消费者时,生产者发送的消息都能收的到。这是不同于队列模式的,队列模式是平均接受消息,每个消费者只收到1/N。结果如下: |
INFO | Successfully connected to tcp://localhost:61616
发送消息 testMesssage 0
发送消息 testMesssage 1
发送消息 testMesssage 2
发送消息 testMesssage 3
...
发送消息 testMesssage 99
INFO | Successfully connected to tcp://localhost:61616
接受消息 testMesssage 0
接受消息 testMesssage 1
接受消息 testMesssage 2
接受消息 testMesssage 3
...
接受消息 testMesssage 99