ActiveMQ Spring 集成配置
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
<version>4.2.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-spring</artifactId>
<version>5.12.1</version>
</dependency>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:amq="http://activemq.apache.org/schema/core"
xmlns:jms="http://www.springframework.org/schema/jms"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd
http://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms.xsd">
<!-- ======================================= 生产者配置 ============================================-->
<!-- 真正可以产生Connection的ConnectionFactory,由对应的 JMS服务厂商提供-->
<bean id="producerConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="${jms.broker.url}"/>
<property name="useAsyncSend" value="true"/>
<!-- clinetIDPrefix属性, 符合此前缀规则的consumer将成为该TOPIC的持久订阅者, 才可以获得此消息 -->
<!--<property name="clientIDPrefix" value="${jms.client.id.prefix}"/>-->
</bean>
<!-- Spring用于管理真正的ConnectionFactory的ConnectionFactory -->
<bean id="producerCachingConnectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
<!-- 目标ConnectionFactory对应真实的可以产生JMS Connection的ConnectionFactory -->
<property name="targetConnectionFactory" ref="producerConnectionFactory"/>
<property name="reconnectOnException" value="true"/>
<property name="cacheConsumers" value="false"/>
<property name="cacheProducers" value="false"/>
<property name="sessionCacheSize" value="50"/>
</bean>
<!-- Spring提供的JMS工具类,它可以进行消息发送、接收等 -->
<bean id="defaultJmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<!-- 这个connectionFactory对应的是我们定义的Spring提供的那个ConnectionFactory对象 -->
<property name="connectionFactory" ref="producerCachingConnectionFactory"/>
<!-- 使 deliveryMode, priority, timeToLive设置生效-->
<property name="explicitQosEnabled" value="true"/>
<!-- 设置NON_PERSISTENT模式, 默认为PERSISTENT -->
<property name="deliveryPersistent" value="true"/>
<!-- 设置优先级0-9, 默认为4 -->
<property name="priority" value="4"/>
</bean>
<!-- ======================================= 消费者配置 ============================================-->
<!-- 持久化主题订阅者(保证订阅者重启后能获得丢失的消息)ActiveMQ 连接工厂 -->
<bean id="consumerConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="${jms.broker.url}"/>
<!-- Durable订阅者必须设置ClientId -->
<!--<property name="clientID" value="${jms.client.id.prefix}"/>-->
<property name="redeliveryPolicy">
<bean name="defaultRedeliveryPolicy" class="org.apache.activemq.RedeliveryPolicy">
<property name="maximumRedeliveries" value="10"/>
<property name="redeliveryDelay" value="60000"/>
</bean>
</property>
</bean>
<!-- Spring用于管理真正的ConnectionFactory的ConnectionFactory -->
<bean id="consumerCachingConnectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
<!-- 目标ConnectionFactory对应真实的可以产生JMS Connection的ConnectionFactory -->
<property name="targetConnectionFactory" ref="consumerConnectionFactory"/>
<property name="reconnectOnException" value="true"/>
<property name="cacheConsumers" value="false"/>
<property name="cacheProducers" value="false"/>
<property name="sessionCacheSize" value="50"/>
</bean>
<jms:listener-container connection-factory="consumerCachingConnectionFactory" response-destination-type="queue" acknowledge="client" >
<jms:listener destination="${jms.queue.charge.name}" ref="chargeMessageListener" concurrency="50-100" />
<jms:listener destination="${jms.queue.charge.dlq}" ref="chargeMsgDLQListener" concurrency="5"
selector="isPutBack IS NULL OR isPutBack=false"/>
<jms:listener destination="${jms.queue.retry.charge.name}" ref="retryChargeMessageListener" concurrency="50-100" />
</jms:listener-container>
<!-- 消息监听器 -->
<bean id="chargeMessageListener" class="com.virtual.api.jms.ChargeMessageListener"/>
<bean id="chargeMsgDLQListener" class="com.virtual.api.jms.ChargeMsgDLQListener"/>
<bean id="retryChargeMessageListener" class="com.virtual.api.jms.RetryChargeMessageListener"/>
</beans>
ActiveMQ Spring 集成配置的更多相关文章
- RabbitMQ与spring集成,配置完整的生产者和消费者
RabbitMQ与AMQP协议详解可以看看这个 http://www.cnblogs.com/frankyou/p/5283539.html 下面是rabbitMQ和spring集成的配置,我配置了二 ...
- Activiti配置实例以及Spring集成配置
public class TestDB { public static void main(String[] args) { //1. 创建Activiti配置对象的实例 ProcessEngineC ...
- activemq spring 集成与测试
1.下载安装activemq 2.pom依赖配置 3.spring配置 4.生产消息,消费消息(同步消费),监听消息(异步消费) 4.测试 5.参考博客 http://www.cnblogs.com/ ...
- RabbitMQ与Spring集成配置
1.引入相关jar包 //RabbitMQ compile group: 'org.springframework.amqp', name: 'spring-rabbit', version: '1. ...
- apache-cxf-2.6.3 spring集成配置
apache-cxf-2.6.3 <?xml version="1.0" encoding="UTF-8"?><beans xmlns=&qu ...
- 重构Mybatis与Spring集成的SqlSessionFactoryBean(1)
一般来说,修改框架的源代码是极其有风险的,除非万不得已,否则不要去修改.但是今天却小心翼翼的重构了Mybatis官方提供的与Spring集成的SqlSessionFactoryBean类,一来是抱着试 ...
- 从零开始学 Java - Spring 集成 ActiveMQ 配置(一)
你家小区下面有没有快递柜 近两年来,我们收取快递的方式好像变了,变得我们其实并不需要见到快递小哥也能拿到自己的快递了.对,我说的就是类似快递柜.菜鸟驿站这类的代收点的出现,把我们原来快递小哥必须拿着快 ...
- 从零开始学 Java - Spring 集成 ActiveMQ 配置(二)
从上一篇开始说起 上一篇从零开始学 Java - Spring 集成 ActiveMQ 配置(一)文章中讲了我关于消息队列的思考过程,现在这一篇会讲到 ActivMQ 与 Spring 框架的整合配置 ...
- Spring集成ActiveMQ配置 --转
转自:http://suhuanzheng7784877.iteye.com/blog/969865 集成环境 Spring采用2.5.6版本,ActiveMQ使用的是5.4.2,从apache站点可 ...
随机推荐
- 【反演复习计划】【COGS2432】爱蜜莉雅的施法
也是一个反演. 第一次手动推出一个简单的式子,激动.jpg 原题意思是求:$Ans=\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}\phi(gcd(i,j))$随 ...
- 编译opencv2.4.11时出现错误:error: ‘NppiGraphcutState’ has not been declared
安装cuda之后再安装opencv时出现错误: /data/opencv-2.4.11/modules/gpu/src/graphcuts.cpp:120:54: error: ‘NppiGraphc ...
- ZOJ-3822
Domination Time Limit: 8 Seconds Memory Limit: 131072 KB Special Judge Edward is the headm ...
- docker从零开始网络(三) overly(覆盖)网络
使用overly网络 该overlay网络驱动程序会创建多个docker进程主机之间的分布式网络.该网络位于(覆盖)特定于主机的网络之上,允许连接到它的容器(包括群集服务容器)安全地进行通信.Dock ...
- centeros7的redis-cli命令不生效解决方法(亲测)
如果你已经安装了redis服务器,并且已经启动,但是redis-cli命令无法生效,分析,命令未加入环境变量.那就给redis命令加入环境变量中: 注意点:redis安装目录会有不同,注意下面的PAT ...
- C#实现DES加密解密,AES加密解密
DES算法描述简介: DES是Data Encryption Standard(数据加密标准)的缩写.它是由IBM公司研制的一种加密算法,美国国家标准局于1977年公布把它作为非机要部门使用的数据加密 ...
- cobbler自动重装
如果物理机上想更换操作系统 yum -y install http://mirrors.163.com/centos/7/extras/x86_64/Packages/epel-release-7-9 ...
- WordPress 数据库操作WPDB对象($wpdb)用法详解【转载】
使用wordpress的时候,如果想直接使用WP里封装的数据库操作的类(wp-db.php),将wp-blog-header.php包含到代码中就可以使用了. define(‘PATH’, dirna ...
- BZOJ 1008: [HNOI2008]越狱-快速幂/取模
1008: [HNOI2008]越狱 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 8689 Solved: 3748 Description 监狱有 ...
- Codeforces 651 C. Watchmen-曼哈顿距离和欧几里得距离
C. Watchmen time limit per test 3 seconds memory limit per test 256 megabytes input standard input ...