一、下载和部署

我的ActiveMQ版本是 5.15.2,参照别人家的博客,下载和启动照样成功。别人家的博客地址:

http://blog.csdn.net/clj198606061111/article/details/38145597

启动成功后,访问 http://localhost:8161/admin 输入用户名和密码 admin / admin(apache-activemq-5.15.2\conf\user.properties)

二、配置文件详解

下载 https://gitlab.com/zhuwenjoyce/TestActiveMQ.git ,启动ActiveMQ在http端口8161和tcp端口61616。

在eclipse里面打开TestActiveMQ项目,web.xml里面看到如下配置加载ActiveMQ:

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:applicationContext.xml,classpath*:ActiveMQ.xml</param-value>
</context-param>

在src目录下打开ActiveMQ.xml,配置ActiveMQ连接:

<amq:connectionFactory id="amqConnectionFactory"
brokerURL="tcp://localhost:61616" userName="admin" password="admin" />

配置spring容器里的ActiveMQ连接工厂:

<bean id="connectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
<!-- 目标ConnectionFactory对应真实的可以产生JMS Connection的ConnectionFactory -->
<property name="targetConnectionFactory" ref="amqConnectionFactory"></property>
<!-- 同上,同理 -->
<!-- <constructor-arg ref="amqConnectionFactory" /> -->
<!-- Session缓存数量 -->
<property name="sessionCacheSize" value="100" />
<!-- 接收者ID,用于Topic订阅者的永久订阅-->
<property name="clientId" value="client-A" />
</bean>

配置spring容器里的jms规范(ActiveMQ属于jms规范的一种实现)的queue队列处理器:

<bean id="jmsQueueTemplate" class="org.springframework.jms.core.JmsTemplate">
<!-- 这个connectionFactory对应的是我们定义的Spring提供的那个ConnectionFactory对象 -->
<constructor-arg ref="connectionFactory" />
<!-- 非pub/sub模型(发布/订阅),即队列模式 -->
<property name="pubSubDomain" value="false" />
<!-- 订阅消息持久化 -->
<property name="deliveryPersistent" value="true" />
<!-- 配置持久化,同上 deliveryPersistent
<property name="deliveryMode" value="2" />
-->
</bean>

配置spring容器里的jms规范(ActiveMQ属于jms规范的一种实现)的topic主题处理器:

<bean id="jmsTopicTemplate" class="org.springframework.jms.core.JmsTemplate">
<!-- 这个connectionFactory对应的是我们定义的Spring提供的那个ConnectionFactory对象 -->
<constructor-arg ref="connectionFactory" />
<!-- pub/sub模型(发布/订阅) -->
<property name="pubSubDomain" value="true" />
<!-- 订阅消息持久化 -->
<property name="deliveryPersistent" value="true" />
<!-- 配置持久化,同上 deliveryPersistent
<property name="deliveryMode" value="2" />
-->
</bean>

配置queue消息队列name为test.queue的消息处理器queueReceiver1或queueReceiver1,如果发送name为test.queue的消息,则为如下配置中queueReceiver1或queueReceiver1任意一个处理器处理:

<jms:listener-container destination-type="queue" container-type="default" connection-factory="connectionFactory" acknowledge="auto">
<jms:listener destination="test.queue" ref="queueReceiver1"/>
<jms:listener destination="test.queue" ref="queueReceiver2"/>
</jms:listener-container>

配置response消息回信:

<jms:listener-container destination-type="queue" container-type="default" connection-factory="connectionFactory" acknowledge="auto">
<jms:listener destination="test.queue.response" ref="queueReceiver1Res"/>
</jms:listener-container>

配置topic主题列表的处理器,如果发送消息主题name为test.topic,则所有主题监听者都要执行对此消息的处理:

<jms:listener-container destination-type="durableTopic" container-type="default" connection-factory="connectionFactory" acknowledge="auto" client-id="client-A">
<!-- 注意:定义 subscription(即:durableSubscriptionName)持久化主题名字 -->
<jms:listener destination="test.topic" subscription="topic_receiver1" ref="topicReceiver1"/>
<jms:listener destination="test.topic" subscription="topic_receiver2" ref="topicReceiver2"/>
</jms:listener-container>

三,项目代码结合配置文件解析

ActivemqController类代表前端请求过来的消息,根据不同消息,发送不同name命名消息到队列或者主题。

com.tgb.SpringActivemq.mq.producer.queue.QueueSender   send()方法,发送指定name消息(test.queue)。根据上述配置文件,订阅了test.queue消息的是:queueReceiver1 和 queueReceiver2

于是com.tgb.SpringActivemq.mq.consumer.queue.QueueReceiver1 或 queueReceiver2 就接收到了消息并进行处理。

在QueueReceiver1 中还对response进行了回信处理。

topic方法以此类推。

ActiveMQ-5.15.2下载和启动(windows)的更多相关文章

  1. 【ActiveMQ】1.下载安装启动使用

    官网下载:http://activemq.apache.org/activemq-5121-release.html 官网指导文档:http://activemq.apache.org/version ...

  2. Centos7 ActiveMQ 安装并配置为开机启动

    第一步, 环境准备 更新CentOS7 ,安装epel-release,安装JDK,关闭防火墙 # yum clean all && yum update# yum install - ...

  3. 通过刷bios的方式在win8.1平板上启动windows phone模拟器

    最近买了个Windows8.1平板电脑,不是Surface Pro,太贵,而是国产的乐凡F2(64G.4G内存),CPU是赛扬U1037.最开始安装Visual Studio2013以及其他开发工具都 ...

  4. ActiveMQ中Broker的应用与启动方式

    Broker:英语有代理的意思,在activemq中,Broker就相当于一个Activemq实例. 1. 命令行启动实例: 1.activemq start使用默认的activemq.xml启动 E ...

  5. activemq.bat 在window7 x64下启动(安装)报错解决方案

    在启动  apache-activemq-5.15.2/activemq.bat  时候报错,提示以下信息: wrapper | --> Wrapper Started as Consolewr ...

  6. IIS启动失败,启动Windows Process Activation Service时,出现错误13:数据无效 ;HTTP 错误 401.2 - Unauthorized 由于身份验证头无效,您无权查看此页

    因为修改过管理员账号的密码后重启服务器导致IIS无法启动,出现已下异常 1.解决:"启动Windows Process Activation Service时,出现错误13:数据无效&quo ...

  7. 不下载SDK启动Android Studio

    一.不下载SDK启动Android Studio 给一个解决方法:Android Studio安装目录下的bin,idea.properties:idea.properties文件末尾加一行:disa ...

  8. win7防火墙打不开(无法启动windows firewall服务)

    点击windows 7控制面板中防火墙的“推荐配置”没有反应:打开“服务”,无法启动windows firewall,并报错.  可能很多的win7用户都碰到过这样的一种情况,那就是win7的防火墙打 ...

  9. mac虚拟机parallels 无法启动 "Windows 7" 虚拟机

    关机前在虚拟机上安装了个游戏有点大,第二天开机就使用不了虚拟机了: 提示:mac虚拟机parallels  无法启动 "Windows 7" 虚拟机.  释放至少 241 MB 的 ...

随机推荐

  1. request.getRealPath的替代方法

    在写上传小练习的时候,发现获得路径的request.getRealPath("")已经被画上线了,也就是不再建议使用. package controller; import jav ...

  2. HIkari线程池调优

    <!-- Hikari Datasource --> <bean id="dataSourceHikari" class="com.zaxxer.hik ...

  3. 指导手册01:安装Hadoop

    指导手册01:安装Hadoop  Part 1:安装及配置虚拟机 1.安装Linux. (1)打开VMvirtualBox (2) 控制->新建虚拟机,输入虚拟机名称“marst+学号” 类型: ...

  4. python基础——列表

    Python列表脚本操作符 列表对 + 和 * 的操作符与字符串相似.+ 号用于组合列表,* 号用于重复列表. 如下所示: Python 表达式 结果 描述 len([1, 2, 3]) 3 长度 [ ...

  5. eclipse工具类及插件(svn的安装)

    (摘抄原文)https://blog.csdn.net/nzzl54/article/details/80768838

  6. Java容器解析系列(4) ArrayList Vector Stack 详解

    ArrayList 这里关于ArrayList本来都读了一遍源码,并且写了一些了,突然在原来的笔记里面发现了收藏的有相关博客,大致看了一下,这些就是我要写的(╹▽╹),而且估计我还写不到博主的水平,这 ...

  7. Building tools 为什么是主流?

    一.building tools 为什么主流? Gradle 是目前比较流行的构建工具之一,Android Studio 中集成的就是 Gradle,并针对 Android 应用开发了插件 Gradl ...

  8. 发布-订阅消息系统Kafka简介

    转载请注明出处:http://www.cnblogs.com/BYRans/ Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写.Kafka是一种高吞吐量的分布式 ...

  9. Git 与SVN

    SVN 是集中式版本控制系统: 先说集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给 ...

  10. 解决android 9上无法使用http协议

    用户反应本来好用的app,突然无法访问服务器,不能正常用了,拿到手机,从头检查权限,重新安装都不能解决,网络是正常的,怎么就不能访问网络了呢?所有想到的办法都用了而不能解决,最后想起看一下androi ...