activeMQ学习

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接口发生消息至mq、mq--消息队列

 

流程

配置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"/>

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

时间: 2024-08-08 05:22:49

activeMQ学习的相关文章

ActiveMQ学习笔记(五)——使用Spring JMS收发消息

ActiveMQ学习笔记(四)http://my.oschina.net/xiaoxishan/blog/380446 中记录了如何使用原生的方式从ActiveMQ中收发消息.可以看出,每次收发消息都要写许多重复的代码,Spring 为我们提供了更为方便的方式,这就是Spring JMS.我们通过一个例子展开讲述.包括队列.主题消息的收发相关的Spring配置.代码.测试. 本例中,消息的收发都写在了一个工程里. 1.使用maven管理依赖包 <dependencies> <depend

ActiveMQ学习笔记(六)——JMS消息类型

1.前言 ActiveMQ学习笔记(四)--通过ActiveMQ收发消息http://my.oschina.net/xiaoxishan/blog/380446 和ActiveMQ学习笔记(五)--使用Spring JMS收发消息http://my.oschina.net/xiaoxishan/blog/381209   中,发送和接受的消息类型都是TextMessage,即文本消息(如下面的代码所示).显然消息类型只有文本类型是不能满足要求的. //发送文本消息  session.create

ActiveMQ学习教程(二)——简单示例

ActiveMQ学习教程(二)--简单示例 一.应用IDEA构建Maven项目 File->New->Module...->Maven->勾选->选择->Next -> GroupId:com.jd.myMaven   |    ArtifactId:activeMQ    |    version:默认   ->Finish 项目构建成功!项目结构如下所示: 二.创建生产者类,模拟生产者发消息 Step1:java/activemq/JMSProducer

activeMQ学习(2)---------点对点、发布订阅的消息代码实现

以下是个人在学习activemq时从网上找到的资料, 总结留给自己以后复习 点对点的实现 2 @Test public void sendMessage(){ 3 try { 4 // 创建一个连接工厂 5 String url = "tcp://localhost:61616"; 6 ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url); 7 // 设置用户名和密码,这个用户名

【Active入门-3】ActiveMQ学习-发布者与订阅者

2015年4月28日 1个发布者,1个订阅者,topic 方式1: 先发布消息: 然后订阅消息: 方式2: 先订阅消息: 然后发布消息:订阅者如下: 结论1: 从上面可以看出,消息发布需要在线发布. 1个发布者,2个订阅者,topic 方式1: 先发布消息: 然后开启两个订阅者 方式2: 先开启两个订阅者: 然后发布消息: 看到订阅者如下: 方式3: 先发布消息,发布完消息后,让发布者休眠10s,然后退出: 此时开启订阅者: 直到发布者程序退出: 订阅者也没有订阅到任何消息 方式4: 上图中,消

ActiveMQ学习笔记(一)--认识消息JMS

1.面向消息的中间件 1.1 什么是MOM 面向消息的中间件,Message Oriented Middleware,简称MOM,利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成.一个MOM系统,通常会包括客户端(Client).消息(Message)和MOM,客户端是发送或者接收消息的应用程序,消息封装了要传递的内容,MOM可以存储和转发消息. 1.2 MOM的好处 降低系统间的通信复杂度.有了MOM,系统间通信可以跨编程语言.不用考虑复杂的网络编程,只需

ActiveMQ学习笔记(二)--安装ActiveMQ

一.Windows安装AMQ AMQ下载地址:https://archive.apache.org/dist/activemq/5.13.0/apache-activemq-5.13.0-bin.zip JDK1.7 步骤一:把apache-activemq-5.13.0-bin.zip解压到一个目录下,例如D:\MQ\apache-activemq\apache-activemq-5.13.0. 目录结构介绍如下. bin,放置启动.停止.注册服务等命令文件. conf,配置文件,包括brok

ActiveMQ学习转载(转载)

深入浅出JMS(一)--JMS基本概念 深入浅出JMS(二)--ActiveMQ简单介绍以及安装

JMS消息中间件之ActiveMQ学习

1.下载 下载二进制bin文件:http://activemq.apache.org/activemq-5132-release.html 下载源码: 2.启动: 解压任意路径: 启动后: 3.访问: 访问http://localhost:8161/admin/  用户名&密码:admin 4.主要应用: