Windows下activemq搭建及应用场景

一:搭建及运行

1:解压下载好的activemq压缩包

2:进入${dir}/apache-activemq-5.5.0/bin目录,双击运行activemq.bat,

等待出现:

3:进入http://127.0.0.1:8161/admin/(这是activemq自带的一个web项目,进入的账号密码在配置文件中指定,稍后会讲),

Windows下activemq搭建及应用场景_第1张图片

图中红色标识的是:当前服务器有那些主题,及该主题的生产消费情况。主题可在自己的web项目中指定,稍后会讲。

二:开始建立自己的web工程

     2.1:建立maven项目,引入jar,具体如下:

 
  

  4.0.0
  web_pro
  pro
  war
  1.0-SNAPSHOT
  pro Maven Webapp
  http://maven.apache.org
    
        4.2.5.RELEASE
        3.2.7
        1.2.5
        1.7.7
        2.7.2
        1.2.17
        UTF-8
    

    

        
            redis.clients
            jedis
            ${jedis.version}
        

        


        
            org.springframework
            spring-context
            4.2.1.RELEASE
        

        
            org.springframework
            spring-web
            4.2.1.RELEASE
        

        
            org.springframework
            spring-webmvc
            4.2.1.RELEASE
        

        
            org.springframework
            spring-websocket
            4.2.1.RELEASE
        

        
            org.springframework.security
            spring-security-web
            3.0.2.RELEASE
        

        
            org.springframework.security
            spring-security-config
            3.0.2.RELEASE
        

        
            org.springframework.security
            spring-security-taglibs
            3.0.2.RELEASE
        

        
            org.springframework
            spring-orm
            4.2.1.RELEASE
        



        

        
            org.slf4j
            slf4j-log4j12
            1.7.25
        

        
            net.sourceforge.jexcelapi
            jxl
            2.6.12
        

        
            com.mchange
            c3p0
            0.9.5.2
        

        
            javax.servlet
            javax.servlet-api
            4.0.0
            provided
        

        
            javax.servlet
            jstl
            1.2
        

        
            javax.servlet.jsp
            jsp-api
            2.2
            provided
        

        

        
            com.fasterxml.jackson.core
            jackson-core
            2.9.1
        

        
            com.fasterxml.jackson.core
            jackson-annotations
            2.9.1
        

        
            com.fasterxml.jackson.core
            jackson-databind
            2.9.1
        

        
            commons-io
            commons-io
            2.5
        

        
            commons-codec
            commons-codec
            1.10
        

        
            commons-fileupload
            commons-fileupload
            1.3.3
        

        
            org.aspectj
            aspectjrt
            1.8.10
        

        

        
            net.sf.json-lib
            json-lib
            2.4
            jdk15
        
        
        
            org.mybatis
            mybatis
            ${mybatis.version}
        

        
        
            org.mybatis
            mybatis-spring
            1.2.2
        

        
        
            com.github.pagehelper
            pagehelper
            5.1.2
        
        
        
            mysql
            mysql-connector-java
            5.1.21
        

        
        
            com.alibaba
            druid
            1.1.3
        
        
        
            com.mchange
            c3p0
            0.9.5.2
        
        
        
            org.mybatis.generator
            mybatis-generator-core
            1.3.4
        


        
        
            org.springframework
            spring-test
             3.2.4.RELEASE  
            provided
        

        
            org.junit.jupiter
            junit-jupiter-api
            RELEASE
        
        
            junit
            junit
            4.12
        
        
            com.alibaba
            fastjson
            1.2.39
        

        
        
            cn.jpush.api
            jpush-client
            3.2.17
        

        
            cn.jpush.api
            jiguang-common
            1.0.3
        
        
            io.netty
            netty-all
            4.1.6.Final
            compile
        
        
            com.google.code.gson
            gson
            2.3
        
        
        
            net.coobird
            thumbnailator
            0.4.8
        

        
            org.apache.poi
            poi
            3.17
        

        
            net.sourceforge.jexcelapi
            jxl
            2.6.12
        


        
        
        
            dom4j
            dom4j
            1.6.1
        
        
            org.testng
            testng
            RELEASE
        


        
        
            org.apache.activemq
            activemq-all
            5.9.0
        
        
            org.apache.activemq
            activemq-pool
            5.9.0
        

        
            org.springframework
            spring-jms
            4.2.1.RELEASE
        

    
    
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                3.2
                
                    1.7
                    1.7
                
            
            
            
                org.mybatis.generator
                mybatis-generator-maven-plugin
                1.3.5
                
                    
                        mysql
                        mysql-connector-java
                        5.1.21
                    
                
                
                    true
                
            
        
        pro
    
   

     注意:上面的pom.xml主要是引入了这几个包

  Windows下activemq搭建及应用场景_第2张图片

  2.2:然后修改application-context,xml,主要是在项目中配置activemq
 
  


   
   
    
    
        
        
        
    

    


























三:解释配置文件

        到这一步基本完成了整合,具体要注意的步骤有一下几点:

        3.1: org.apache.activemq.ActiveMQConnectionFactory:是连接工厂,该类的构造方法传递了连接服务的用户名和密码,服务器的ip,注意该ip可以是个集群.用户名密码的指定配置在${dir}\apache-activemq-5.9.0\conf\activemq.xml中的标签内添加如下标签:


    
        
            
        
    

       3.2:activemq.xml文件中的用户名密码与自己项目配置文件里关于activemq配置的用户名密码一致,然后连接工厂的第三个参数为activemq的服务器ip,它采用tcp连接,并且failover进行集群,并附带超时参数2000ms,其中的连接端口可以更改,具体在:${dir}\apache-activemq-5.9.0\conf\activemq.xml的

Windows下activemq搭建及应用场景_第3张图片

        3.3:构造队列:org.apache.activemq.command.ActiveMQQueue:构造方法中指定了自己队列的名称

         3.4:整合jms:

 
  

    
    

        3.5:再接着整合自己编写的消息接受类和发送类,这个两个类主要是是实现了一些监听方法,然后做自己的业务处理


    
    

        3.6:最后将自己的监听类和配置activemq的消息队列及actiemq的连接工厂整合到jms监听中


    
    
    


四:项目中的使用场景及额外注意步骤:

       activemq是在高并发下将请求处理的队列化,它自身处理多线程等一系列问题,所以我们直接用即可,监听好它的消息,然后一步步将队列中的请求消费完。

      提到高并发就不由想到nginx,有了nginx负载不就完了吗?为什么还用消息队列呢?

      答案如下:1:系统的瓶颈往往出在数据库,nginx的架构适合于多系统多数据库,对于数据库集群可适用,但这会导致数据同步等一系列问题增多.activemq针对的是单数据库,比如有些场景只使用了一个数据库(类似一些中心数据库),mq使用场景图如下:

Windows下activemq搭建及应用场景_第4张图片

                    2:比如持久层数据库和redis同步时,如果出现大量请求,数据同步方案也可以放在activemq队列中处理,防止并发出现的问题

五:注意事项

    使用activemq时,需防止单机宕机导致数据丢失,所以需要处理额外步骤:

        1:需要做集群

        2:做数据持久化,持久方案有多种,目前推荐activemq自带的KahaDB方式处理


你可能感兴趣的:(activemq)