-
在
JMS
中间主要定
义了
2
种消息模式
Point-to-
Point
(
点对点
),Publich/Subscribe
Model (
发
布
/
订阅者
)
,
其中在
Publich/Subscribe
模式下又有
Nondurable
subscription
和
durable
subscription
(
持久化订阅
)2
种消息处理方式。
下面是
< br>JMS
规范基本的接口和实现
1
、
JMS
Queue
执行
load
balancer
语义:
一条消息仅
能被一个
consumer
收到。如果在
message
发送的时候没有可用的
consumer
p>
,那么它将被保存一直到能处理该
message
< br>的
consumer
可用。如果一
个
consumer
收到一条
mes
sage
后却不响应它,那么这条消息将被转到另一个
cons
umer
那儿。一个
Queue
可以有
很多
consumer
,并且在多个可用的
consumer
中负载均衡。
2
、
Topic
实现
publish
和
subscr
ibe
语义:
一条消息被
publish
时,它将发到所有感兴趣的订阅者,所以零到多个
subscriber
将接收到消息的一个拷贝。但是在消息代理接收到
消息时,只有激活订阅的
subscriber
能够获得消息的
一个拷贝。
3
、分别对应两种消息模式:
Point-to-Point
(
点对点
),Publisher/Subscriber
Model (
发布
/
订阅者
)
其中在
Publicher/Subscriber
模式下又有
Nondurable subscription
(非持久订阅)
和
durable
subscription (
持久化订阅
)2
种消息处理方式。
五、
Point-to-Point (
点对点
)
消息模式开发流程
1
、生产者(
producer
)开发流程(
):
1.1
创建
Connection<
/p>
:
根据
url
,
user
和
password
创建一个
jms
Connection
。
1.2 <
/p>
创建
Session
:
< br>
在
connection
的基
础上创建一个
session
,同时设置是否支持事务和
ACKNOWLEDGE
标识。
1.3
创建
Destination
对象:
需指定其对应的主题
(
subject
)
名
称,
producer
和
consum
er
将根据
subject
来发送
p>
/
接收对应的消息。
1.4
创建
MessageProd
ucer
:
根据
Destination
创建
MessageProduc
er
对象,同时设置其持久模式。
1.5
发送消息到队列(
Queue
):
封装
T
extMessage
消息,使用
MessageProduc
er
的
send
方法将消息发送出
p>
去。
2
、消费者
(
consumer
)开发流程(
p>
):
2.1
实
现
MessageListener
接口:
消费者类必须实现
MessageListener
p>
接口,然后在
onMessage()
方法
中监听消息
的到达并处理。
2.2
创建
Connection
:
根据
url
,
user
和
password
创建一个
jms Connection
,
如果是
durable
模式,
还需要给
connection
设置一个
< br>clientId
。
2.3
创建
Session
和
Destination
:
与
中的流程类似,不再赘述。
2.4
创建
replyProducer
p>
【可选】:
可以用来将消息处理结果发送
给
producer
。
2.5
创建
MessageCons
umer
:
根据
Destination
创建
M
essageConsumer
对象。
2.6
消费
message
:
在
onMessage()
方法中接收
p
roducer
发送过来的消息进行处理,并可以通
过
replyProducer
反馈信息给
pro
ducer
if
(ReplyTo() !=
null
) {
(ReplyTo(),
TextMessage(
+
MessageID()));
}
六、
Publisher/Subs
criber(
发布
/
订阅者
)
消息模式开发流程
1
、订阅者(
Subscriber
)
开发流程(
):
1.1
实现
MessageList
ener
接口:
在
< br>onMessage()
方法中监听发布者发出的消息队列,并做相应处理。
p>
1.2
创建
C
onnection
:
根据
url
,
user
和<
/p>
password
创建一个
jms
Connection
。
1.3 <
/p>
创建
Session
:
< br>
在
connection
的基
础上创建一个
session
,同时设置是否支持事务和
ACKNOWLEDGE
标识。
1.4
创建
Topic
:
创建<
/p>
2
个
Topic
,
es
用于接收发布者发出的消息,
l
用于向发布者发送消息,实现双方的交互。
< br>
1.5
创建
consume
r
和
producer
对象:
根据
es
创建
consumer
,
根据
l
创建
produ
cer
。
1.6
接收处理消息:
p>
在
onMessage()
方法中,对收到
的消息进行处理,可直接简单在本地显示消
息,或者根据消息内容不同处理对应的业务逻
辑(比如:数据库更新、文件操
作等等),并且可以使用
pro
ducer
对象将处理结果返回给发布者。
< br>2
、发布者(
Publisher
)开发流程(
):
2.1
实现
MessageList
ener
接口:
在
< br>onMessage()
方法中接收订阅者的反馈消息。
2.2
创建
Connection<
/p>
:
根据
url
,
user
和
password
创建一个
jms
Connection
。
2.3 <
/p>
创建
Session
:
< br>
在
connection
的基
础上创建一个
session
,同时设置是否支持事务和
ACKNOWLEDGE
标识。
2.4
创建
Topic
:
创建<
/p>
2
个
Topic
,
es
用于向订阅者发布消息,
l
p>
用于接收订阅者反馈的消息。这
2
个
topic
与订阅者开发流程中的
topic
是一一
对应的。
2.5
创建
consumer
和
producer
对象:
< br>
-
-
-
-
-
-
-
-
-
上一篇:电视编辑心得汇总
下一篇:新手必看:卫星电视从入门到精通