码迷,mamicode.com
首页 > 其他好文 > 详细

activeMQ学习

时间:2017-08-27 16:11:27      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:etc   使用   pubsub   image   ref   color   subject   pack   service   

activeMq

一个项目的Service  调用另一个项目的service

技术分享

技术分享

 

下载安装包  环境linux

创建文件夹 mkdir  activemq

 解压命令 tar  -zvxf   mq文件

Cd 文件的bin目录 ./activemq  start

Linux安装activeMq  http://www.cnblogs.com/lyxy/p/5969116.html

 

61616是mq服务默认端口:

netstat -ntlp|grep 8161  

netstat -an|grep 61616

ps  -ef | grep activemq

技术分享

 

http://     ip  :8161/admin/

默认账号密码admin/admin

技术分享

Java接口发生消息至mqmq--消息队列

 

 技术分享

技术分享

流程

技术分享

技术分享

配置mq.xml

 

一:

<!-- 配置activeMq -->

<!-- 配置原厂家的工厂  由apache提供 -->

<bean id="activeMQConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">

<!-- 连接协议  tcp://192.168.200.128:61616 -->

<property name="brokerURL" value="tcp://192.168.200.128:61616"/>

<property name="userName" value="admin"/>

<property name="password" value="admin"/>

</bean>

<!-- 配置原厂家的工厂的连接池   由apache提供-->

<bean id="pooledConnectionFactoryBean" class="org.apache.activemq.pool.PooledConnectionFactoryBean">

<!-- 上面的工厂 -->

<property name="connectionFactory" ref="activeMQConnectionFactory"/>

<!-- 连接数 -->

<property name="maxConnections" value="2"/>

</bean>

<!-- Spring管理 apache提供的原工厂 -->

<bean id="connectionFactory" class="org.springframework.jms.connection.SingleConnectionFactory">

<!-- 原工厂 -->

<property name="targetConnectionFactory" ref="pooledConnectionFactoryBean"/>

</bean>

 

<!-- JmsTempalte 操作ActiveMq  某个地点  目标   -->

<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">

<!-- 注入Spring的工厂 -->

<property name="connectionFactory" ref="connectionFactory"/>

<!-- 默认目标  商品ID自定义 -->

<property name="defaultDestinationName" value="productId"/>

 

</bean>

 

 

      发送者 需要发送的product   就是   id  我固定成10000技术分享

 

 

-------->    

发送者       -------->             接收者

 

接受消息Java

 

复制以上 mq.xml添加至接收项目

 

<!-- 扫描 -->

<!-- 配置activeMq -->

<!--配置原厂家的工厂  由apache提供 -->

<bean id="activeMQConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">

<!-- 连接协议  tcp://192.168.200.128:61616 -->

<property name="brokerURL" value="tcp://192.168.12.128:61616"/>

<property name="userName" value="admin"/>

<property name="password" value="admin"/>

</bean>

<!-- 配置原厂家的工厂的连接池   由apache提供-->

<bean id="pooledConnectionFactoryBean" class="org.apache.activemq.pool.PooledConnectionFactoryBean">

<!-- 上面的工厂 -->

<property name="connectionFactory" ref="activeMQConnectionFactory"/>

<!-- 连接数 -->

<property name="maxConnections" value="2"/>

</bean>

<!-- Spring管理 apache提供的原工厂 -->

<bean id="connectionFactory" class="org.springframework.jms.connection.SingleConnectionFactory">

<!-- 原工厂 -->

<property name="targetConnectionFactory" ref="pooledConnectionFactoryBean"/>

</bean>

<!-- 消息监听进来    再处理类  -->

<bean id="customMessageListener" class="cn.itcast.core.mq.CustomMessageListener"/>

 

<!-- 监听MQ -->

<bean class="org.springframework.jms.listener.DefaultMessageListenerContainer">

<!-- 1:连接Mq进行监听 -->

<property name="connectionFactory" ref="connectionFactory"/>

<!-- 2:监听的目标 地点 -->

<property name="destinationName" value="productId"/>

<!-- 3:接收消息 -->

<property name="messageListener" ref="customMessageListener"/>

 

</bean>

 

注意 CustomMessageListener.class

package cn.bbs.mq;

 

import javax.jms.JMSException;

import javax.jms.Message;

import javax.jms.MessageListener;

 

import org.apache.activemq.command.ActiveMQTextMessage;

 

public class CustomMessageListener implements MessageListener{

 

@Override

public void onMessage(Message message) {

ActiveMQTextMessage am = (ActiveMQTextMessage)message;

try {

System.out.println(am.getText()+"============="+Long.parseLong(am.getText()));

 

} catch (JMSException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

 

}

 

}

 

技术分享

提供方打印

技术分享

消费方打印

技术分享

 

 

 

 

 

 

 

 

 

 

 

一对多   队列改成主题

技术分享

发布方 mq.xml添加

 

<!-- 默认不设置是队列  : 设置 就是发送主题

pub  : 主题  发布   / 订阅

sub : subject 订阅

Domain :模型

-->

<property name="pubSubDomain" value="true"/>

接收方 mq.xml 同样添加这一句

 

<!-- 4:默认队列   改成 主题 -->

<property name="pubSubDomain" value="true"/>

技术分享

因为是一对多 使用要两个以上的的服务来接收发生者的消息

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

 

activeMQ学习

标签:etc   使用   pubsub   image   ref   color   subject   pack   service   

原文地址:http://www.cnblogs.com/jiahaoJAVA/p/7440430.html

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