activemq spring整合 以及虚拟主题设置
来源:互联网 发布:软件二次开发合同 编辑:程序博客网 时间:2024/05/22 06:55
1. jmstemplate 配置
4. 消息发送
5. 消息异步接收
注意:activemq 使用PooledConnectionFactory连接池引入 commons-pool2,如果weblogic版本较低 会与weblogic 的jar 包冲突,此时需要调整weblogic 加载顺序
activemq虚拟主题 是为了解决同一个主题多个应用订阅,同一个应用集群的多台机器订阅只消费一次 ,主题订阅 注意 命名 是VirtualTopic开头,主题必须持久化,同一个应用clientId 相同
<bean id="jmstemplate" class="org.springframework.jms.core.JmsTemplate"><property name="connectionFactory" ref="mqConnectionFactory" /><property name="defaultDestination" ref="testqueue"/><property name="deliveryMode" value="1"></property> <property name="sessionTransacted" value="false"/> <!-- deliveryMode, priority, timeToLive 的开关,要生效,必须配置为true,默认false--> <property name="explicitQosEnabled" value="false" /> <!-- 超时时间 --><property name="timeToLive" value="${acq.query.timeout}"/></bean>
class="org.apache.activemq.command.ActiveMQQueue"><constructor-arg value="com.cn.testqueue" /></bean>
<bean id="mqConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory"><property name="connectionFactory"><bean class="org.apache.activemq.ActiveMQConnectionFactory"><property name="brokerURL" value="${mq.brokerURL}" /></bean></property></bean>
<p><em><span style="color:#2A00FF;">MQ_URL=failover:(tcp://ip:61616,tcp://ip:</span> <span style="color:#2A00FF;">61616)</span></em></p>
2.消息监听器配置
<!-- 消息监听器 --> <bean id="consumerMessageListener" class="com.activemq.lisenter.MessageListenterA"/> <bean id="jmsContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer"> <property name="connectionFactory" ref="mqConnectionFactory"> <property name="destination" ref="testqueue"> <property name="messageListener" ref="consumerMessageListener" /> <property name="sessionTransacted" value="true"></property> <property name="concurrentConsumers" value="2"/> </bean>
3.引入 jar 包
<properties> <activemq.version>5.9.1</activemq.version></properties><!-- activemq --> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-broker</artifactId> <version>${activemq.version}</version> </dependency> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-client</artifactId> <version>${activemq.version}</version> </dependency> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-console</artifactId> <version>${activemq.version}</version> </dependency> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-jaas</artifactId> <version>${activemq.version}</version> </dependency> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-openwire-legacy</artifactId> <version>${activemq.version}</version> </dependency> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-spring</artifactId> <version>${activemq.version}</version> </dependency>
4. 消息发送
jmsTemplate.convertAndSend(Object message);
5. 消息异步接收
实现监听器MessageListener接口,配置成Spring Bean。只有一个方法需实现:public void onMessage(Message message);例如:public class <span style="font-family: Arial, Helvetica, sans-serif;">MessageListenterA </span><span style="font-family: Arial, Helvetica, sans-serif;">implements MessageListener {</span>@Overridepublic void onMessage(Message message) {if (!(message instanceof ObjectMessage)) {logger.info("接收的消息类型不匹配!");return;}try {ObjectMessage objectMessage = (ObjectMessage) message;ShortMessage smsMsg = (ShortMessage)objectMessage.getObject();//…………………} catch (JMSException e) {logger.error("jms异常", e);}}
注意:activemq 使用PooledConnectionFactory连接池引入 commons-pool2,如果weblogic版本较低 会与weblogic 的jar 包冲突,此时需要调整weblogic 加载顺序
在 web-inf 目录下面加入 weblogic.xml
<?xml version="1.0" encoding="UTF-8"?><weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsdhttp://xmlns.oracle.com/weblogic/weblogic-web-apphttp://xmlns.oracle.com/weblogic/weblogic-web-app/1.2/weblogic-web-app.xsd"> <container-descriptor> <!--<prefer-web-inf-classes>true</prefer-web-inf-classes>--> <prefer-application-packages> <package-name>org.apache.commons.pool*</package-name> </prefer-application-packages> </container-descriptor></weblogic-web-app>
activemq虚拟主题 是为了解决同一个主题多个应用订阅,同一个应用集群的多台机器订阅只消费一次 ,主题订阅 注意 命名 是VirtualTopic开头,主题必须持久化,同一个应用clientId 相同
<!--主题订阅--><bean id="queue_market_topic" class="org.apache.activemq.command.ActiveMQTopic"><!--对列名称自定义,如果Activemq没有这个对列会新建--><constructor-arg value="VirtualTopic.TEST" /> </bean>
<bean id="myListenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer"> <property name="connectionFactory" ref="connectionFactory" /> <property name="pubSubDomain" value="true"/> <property name="subscriptionDurable" value="true"/> <property name="receiveTimeout" value="10000"/> <property name="clientId" value="push_client_119" /> <property name="durableSubscriptionName" value="push_client_119"/> <property name="destination" ref="myDestination" /> <property name="messageListener" ref="myTopicListenerA" /> </bean>
0 0
- activemq spring整合 以及虚拟主题设置
- ActiveMQ之虚拟主题
- ActiveMQ和spring整合,订阅主题和消息消费
- ActiveMQ高级特性:ActiveMQ之虚拟主题
- ActiveMQ实战(五)--Spring整合ActiveMQ实现点对点与主题发布订阅通信
- ActiveMQ实战(六)--Spring整合ActiveMQ实现队列和主题发布订阅通信
- ActiveMQ(四):Spring ActiveMQ 整合
- 基于spring整合activeMQ以及点对点队列的封装
- ActiveMQ的入门案例以及整合Spring的简单使用
- ActiveMQ和spring整合
- Spring整合ActiveMQ
- SPRING+ACTIVEMQ+TOMCAT整合
- Spring整合activeMQ
- ActiveMQ、Spring整合学习
- activeMq整合spring
- ActiveMQ、Spring整合学习
- spring activemq quartz 整合
- SPRING JMS 整合ACTIVEMQ
- OC基础
- Oracle&&Mysql存储过程实例
- 一个简单的应用程序iphone : sayHello
- 知识梳理:TextView
- Java的复制详解
- activemq spring整合 以及虚拟主题设置
- viewpager资助实现滑动指示条
- Fedora 20 的 r8168 与 rtl8723be 驱动
- SQL常用函数
- MySQL 相关命令
- 网络编程通讯的要素
- sdk manager 代理,解决下载速度慢的问题
- 每人的生命里都有一只碗
- linux在shell中获取时间