Activemq的简单使用

来源:互联网 发布:windows store被卸载了 编辑:程序博客网 时间:2024/05/14 07:01
目标:在spring集成环境中,使用activemq服务,mq服务要求是集群的。单个mq服务的宕机,不能影响生产者推送消息到队列,也不能影响消费者从队列中消费消息。

方案:采用activemq官网提供的master/slave的模式
该官网地址:http://activemq.apache.org/masterslave.html
官网提供了三种实现方案,时间紧、任务重,选最简单的方式Shared File System来实现。

 

该实验环境基于windows系统,详细步骤如下:

一、activemq的master/slave配置
该配置是activemq.xml
1、修改mq数据存储为共享存储路径,距离如下:
      
2、配置该mq服务为master/slave模式;
      a、给该mq起个单独的名字;
      b、指定mq数据的存储路径;
      c、使用jmx监控broker(即该mq服务,用以扫描当master挂掉之后,它是否应该从slave成为master);
      d、设置mq消息数据可持久化(用以master挂掉后,新升任的master可从持久数据中恢复未消费的mq消息);
      
       这一块的配置如下:
       

3、拷贝activemq安装包,修改mq监听端口;
     本次实验仅使用两个mq服务分别为61617、61618;
    
      activemq自带jetty容器提供管理界面,所以启动两个mq服务的话,jetty的端口也需要修改。在jetty.xml配置。另外,如果访问mq管理界面要求输入账号密码,则账号密码也是在这个配置里面。本实验未配置该账号密码。
     

二、在spring环境中使用activemq
1、配置jmsFactory


2、配置JMSTemplate


3、实现ServerProvider(消费者监听由它提供)

4、实现ActivemqConsummerAbstract
       它主要有两个功能:
        a、具体消费者类初始化后,自动放到activemq监听线程中;
        b、接收消息,并将该消息传递给具体的消费者类消费;
       
5、实现ActivemqProducerAbstract
     它的功能主要是调用jmsTemplate进行消息推送
    
6、简单类图说明如下:
     
7、最后测试类结构如下:
     
8、share file模式的master/slave的实验结论
      a、最先启动的activemq服务,会成为master;
      b、master对share file施加一个锁;
      c、后续启动的activemq服务将成为slave,该slave会不断进行扫描,期望获得share file的使用权。当master挂掉,释放掉对share file的锁后,某个slave将会成为master。
     
0 0
原创粉丝点击