码迷,mamicode.com
首页 > 编程语言 > 详细

spring集成jms用法

时间:2016-05-07 09:55:42      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:

spring集成jms用法

JMS全称java message service,用于发送消息。

1、优势

1.相对RPC达到了解耦的效果:与服务接口名解耦(RPC中更改接口名称,客户端需要做修改)、与服务位置解耦(RPC需要配置服务的网络位置才能使用服务)、与服务的可用性解耦(RPC中当服务不可用时,客户端也无法正常运行)。
2.免去了等待,客户端将消息交给消息代理,然后就可以忙其他的事情了,而不需要阻塞等待。

2、主要概念

1.消息代理:确保信息投递到指定的目的地,同时释放发送者,使其能够继续进行其他业务。可以拿现实生活中的邮局做类比。
2.目的地:这里有两种类型的目的地:队列和主题。分别对应了点对点消息模型和发布-订阅消息模型。目的地并不关心消息由谁取走,只关注消息应该从哪里获取,故而目的地类似于信件的地址为“本地居民”
- 点对点消息模型:该模型中每个消息都有一个发送者和接受者,消息代理获得消息放入队列中,接收者请求队列中的下一跳消息时,消息会从队列中取出,投递给接受者。消息在投递后会从队列中删除,从而保证消息智能投递给一个接收者。每个消息只能投递给一个接收者,但是并不意味着只能使用一个接收者从队列中获取消息。
- 发布-订阅消息模型:消息会发送给一个主题,与队列类似的是,多个接收者都可以监听主题;不同地方是,队列中消息只投递给一个接收者,而主题中所有的订阅者都会收到此消息。

3、spring中消息代理搭建

本文中使用了ActiveMQ,在activemq发行包下载二进制发行包,bin目录下执行activemq start命令即可启动服务。
1创建连接工厂:告诉spring如何连接到activemq服务

<bean id ="connectionFactory" class="org.apache.activemq.spring.ActiveMQConnectionFactory">
    <property name="brokerURL" value="tcp://localhost:61616">

2.声明ActiveMQ目的地:不论队列还是主题,都需要使用特定的消息代理实现类在spring中配置目的地bean

<bean id="queue" class="org.apahce.activemq.command.ActiveMQQueue">
    <constructor-arg value="spitter.queue">
</bean>
<bean id="topic" class="org.apache.actrivemq.command.ActiveMQTopic">
    <constructor-arg value="spitter.topic">
</bean>

其中<constructor-arg>指定队列名称

spring集成jms用法

标签:

原文地址:http://blog.csdn.net/dongfengkuayue/article/details/51331861

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!