前面一张文章中我已经写过关于JMS消息机制的PTP(点对点)模式,今天我来写一下我个人对于JMS消息机制的发布-订阅模式。
在看是正文前,我想向大家阐述一下关于PTP与发布-订阅的特点和区别。
特点:
点对点消息模型:通过一个服务器消息队列实现,消息的发送者向队列写入消息,消息的接收者从队列取出消息。
发布-订阅模式:把消息发送到给一个主题(Topic),消息服务器将消息发布给订阅器该主题的每一个订阅者。举个通俗的例子,就好比如一家杂志社(相当于消息发送者)把一堆杂志(相当于消息)寄到了邮政(相当于主题),再由邮政将杂志发给每一个有订阅这本杂志的读者(相当于消息接收者)。
区别:
点对点模型每一个消息只有一个接收者。
发布-订阅消息模式的每一个消息可以有多个接收者。
在开始看代码前在这我先说一下,由于前一个JMS例子是PTP模式的,它是运用服务器的Queue(队列)来存储的,而我们这个发布-订阅模式是运用到主题来存储,所以你必须要在weblogic的server下创建一个主题(Topic),否则会报错。。。。。
好了,说多废话咯~~,接下来就看发布-订阅模式下的具体代码咯。
先来看一下我的整个项目结构
有关于java.jms.jar和wlfullclient.jar包,有需要的游客可以去我的资源哪里下载。。。。。
先来看一下staticfunction包下的StaticFunction这个类
public class StaticFunction {
public static Context getContext(){
Context ctx=null;
String url="t3://localhost:7001";
Properties p=new Properties(