spring集成jms用法

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>指定队列名称

时间: 2024-12-15 06:38:44

spring集成jms用法的相关文章

Spring集成Activemq使用(未完待续)

现在任何一个框架的使用都会结合spring框架,quartz.cxf与平时常见的Hibernate.mybatis.Struts等都可以与spring集成起来使用,在这里研究了activemq结合spring的使用方法. 1.理论篇 spring集成JMS连接ActiveMq ConnectionFactory:用于管理连接的工厂(Spring为我们提供的连接池,因为JmsTemplate每次发消息都会重新创建连接.会话和producer,这个操作非常消耗性能,所以Spring提供了连接池) s

ActiveMQ(二)与Spring集成

声明 转载请注明出处! Reprint please indicate the source! http://www.hiknowledge.top/2017/04/03/activemq%ef%bc%88%e4%ba%8c%ef%bc%89%e4%b8%8espring%e9%9b%86%e6%88%90/ ActiveMQ与Spring集成 由于历史原因,JMS有4个版本.Spring提供了用于简化JMS API使用的抽象框架,并且对用户屏蔽了JMS API中1.0.2和1.1版本的差异.

Spring集成ActiveMQ配置 --转

转自:http://suhuanzheng7784877.iteye.com/blog/969865 集成环境 Spring采用2.5.6版本,ActiveMQ使用的是5.4.2,从apache站点可以下载.本文是将Spring集成ActiveMQ来发送和接收JMS消息. 集成步骤 将下载的ActiveMQ解压缩后文件夹如下 activemq-all-5.4.2.jar是activemq的所有的类jar包.lib下面是模块分解后的jar包.将lib下面的 Java代码 /lib/activati

spring 集成apache qpid 简单demo

spring 提供spring-jms模块,用以集成JMS到spring 容器中,并提供jmsTemplate模版类来操作jms,类似集成jdbc数据库操作一样. 首先,我们新建一个applicationContext-qpid.xml来做qpid的集成操作 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/

Mybatis-Generator插件的使用与Spring集成Mybatis的配置

Mybatis-Generator插件 Mybatis-Generator是一个用于自动生成dao层接口.pojo以及mapper xml的一个Mybatis插件,该插件有三种用法:命令行运行.Eclipse插件.maven插件.个人觉得maven插件最方便,可以在eclipse/intellij idea等ide上通用,本文也是介绍在maven中配置并使用这个插件. 现在我mysql中有一个school数据库,该数据库有student.cls两张表格,表结构如下: student表: cls表

spring集成mqtt客户端相关逻辑分析

概述 mqtt客户端有很多java实现,官网上列出了下面这些: Eclipse Paho Java Xenqtt Includes a client library, mock broker for unit/integration testing, and applications to support enterprise needs like using a cluster of servers as a single client, an HTTP gateway, etc. MeQan

RabbitMQ安装和使用(和Spring集成)

一.安装Rabbit MQ Rabbit MQ 是建立在强大的Erlang OTP平台上,因此安装Rabbit MQ的前提是安装Erlang.通过下面两个连接下载安装3.2.3 版本: 下载并安装 Eralng OTP For Windows (vR16B03) 运行安装 Rabbit MQ Server Windows Installer (v3.2.3) 具体操作步骤参考:在 Windows 上安装Rabbit MQ 指南 本人遇到的问题 当安装RabbitMQ后,使用rabbitmqctl

spring集成quartz

spring集成quartz 注意:出现异常"Caused by: java.lang.IncompatibleClassChangeError: class org.springframework.scheduling.quartz.CronTriggerBean has interface org.quartz.CronTrigger as super class" Spring3.0不支持Quartz2.0,因为org.quartz.CronTrigger在2.0从class变成

Hessian入门(包括与Spring集成)

A.纯Hessian接口开发步骤 Hessian-JAVA服务器端必须具备以下几点: * 1.包含Hessian的jar包(hessian-4.0.37.jar) * 2.设计一个接口,用来给客户端调用(IHessian.java) * 3.实现该接口的功能(IHessianImpl.java) * 4.配置web.xml,配好相应的Servlet(web.xml) * 5.对象必须实现Serializable接口(Foo.java) Hessian-JAVA服务端代码预览图: 1.包含Hess