11.(此处为以上综合精华)如何使用ActiveMQ,以及spring+jms下整合

来源:互联网 发布:韩顺平mysql基础视频 编辑:程序博客网 时间:2024/05/20 13:38
1.win安装ActiveMQ


第一步打开ActiveMQ官网,下载win版本安装包
http://activemq.apache.org/activemq-5144-release.html

第二部安装好之后,打开安装包下bin目录win64/win32,里面有三个bat文件,点击activemq.bat运行(尽量使用管理员身份运行避免其他错误失败),启动成功后ActiveMQ窗口最后会显示http地址端口就证明已经启动成功,然后打开此http地址会进入其管理界面,其默认密码和用户名都是admin,进入其管理平台。(切记命令窗口不要关闭,不然activeMQ整个服务就都关闭掉了)。可以使用服务方式启动避免;点击installService.bat以管理员身份运行,然后打开任务管理器 ,本地服务已经有了activeMQ服务,我们可以自己设置是否开机自动启动,再次尝试访问一下其管理平台。

activemq.bat运行 效果图看下图:








installService.bat效果图 看下图:



请使用管理员身份运行(可能会报错:wrapper  | OpenSCManager failed - 拒绝访问。 (0x5))







windows 安装到此为止,谢谢大家!



2. linux安装ActiveMQ




第一步登陆linux系统,可已自行选择根据网址在线下载

或者下载后自定义放入指定地址解压

进入此目录查看

打开bin目录,启动,出现pid 5999代表成功

测试一下:

打开本地地址端口号为8161,查看,成功

停止服务:




linux 安装到此未知,谢谢



3. 队列模式的消息演示

流程图如下:




第一步:创建一个maven项目


第二部:打开项目pom.xml引入activemq依赖


项目目录
 
创建一个队列模式的演示类
  
接下来按照

来进行代码编写



接下来准备运行项目,先将服务打开,此时查看activemq控制页面是否有队列存在


运行代码,结果如下





查看此时activemq控制页面队列情况


好,现在我们可以创建消费者,消费消息,代码如下:(很多与生产者代码一样)



这里 需要将流关闭,因为启动项目时监听器应该一直处于监听状态,不可关闭应该在,我们运行一下:


显示已经消费,我们再activemq控制面板查看一下:


如上图展示已经消费。
接下来我们尝试开启两个消费者,看看会如何消费队列内的消息:(先将消费者开启,开启两次,可在输出语句添加标记)



我开启了两个此消费者,输出语句进行标记


接下来我们启动 生产者,如图生产折发送消息成功



接下来我们查看两个消费者的消费情况:




以上两图我们可以看出,两个消费者平均消费了 队列内的消息。好介绍到这里,谢谢大家



4. 主题模式的消息演示


项目目录:


其实主题模式很多与队列模式很相似,我们可以直接将队列模式内生产者消费者copy至主题模式目录下,进行修改
主要修改:1.换一个名字;2.之前我们我们的目标是一个队列,现在修改为主题,代码如下:



如上图所示,生产者我们就修改好了,其实发现很相似,接下来我们修改消费者,代码如下:



这样 我们消费者也就修改好了,是不是很简单  接下来我i们就可以队列一样测试一下啦。
运行生产者:


运行消费者


这是因为订阅者,需要提前订阅这个主题,所以我们应该先裕兴消费者,再运行生产者再来看看

好接下来我们再尝试一下,先运行两个消费者,然后再运行生产者,看会出现什么情况?






好,我们可以总结一下:这也是我们队列模式和主题模式下最大的区别,好我就讲到,谢谢大家。



5. spring JMS理论




一:




SingleConnectionFsctoty其实就是每次请求都返回同一个链接,也就是说 整个应用都使用一个链接来进行操作。
CachingConnectionFactory 继承了 SingleConnectionFsctoty,拥有其全部功能,又新增了缓存功能(会话,生产者,消费者)


二:




可以创建多个。



三:




6.spring JMS 演示


项目结构如下:


pom.xml如下:


common.xml公共配置文件:

producter.xml生产者配置文件:

consumer.xml消费者配置文件:

producterService生产者发送消息接口:


ProducterServiceImpl实现类如下:


接下来AppProducter生产者启动类如下:

ConsumerMessageListener消息监听如下:

AppConsumer消费者启动类:

好接下来我们先启动生产者如下:(消息发送成功)

接下来查看activemq控制面板:(发现都有了 queue/topic)
queue:

topic:


那接下来我们可以尝试启动消费者:(在这里需要注意,因为我们启动了生产者启动类,在队列模式下和主题模式下我们都发送了消息所以这里我们需要分别测试消费者测试情况)
第一种我们先测试 队列模式下消费情况:

第二种情况,我们的消费者配置文件consumer.xml需要进行修改一段配置,来检测主题模式下消费情况:


大家是否记得,主题模式其实就是订阅模式,我们应该先订阅(启动消费者),再发送消息(启动生产者),这样我们才可以查看到订阅模式下具体的消费情况,如下图启动消费者:


然后我们再启动生产者:


这时候我们再打开消费者控制台窗口查看消费情况:
  

谢谢观看!
原创粉丝点击