现在的系统业务是每人开发一个模块,然后用HTTP接口访问。由多个用个用户注册的入口,用户注册事件处理也分布到不同的代码里。看起来相当不舒服,所以决定使用JMS来处理事件触发后的逻辑,降低系统的耦合,也方便开发修改代码。
以前也只是听说过MQ,但一直也开发过这方面的程序,趁此机会正好学习一下。由于现在开发的也不是什么大型系统,采用Apache的ActiveMQ就足够了。网上很多资料都是把ActiveMQ嵌入到web模块中,就现在的系统而言由于业务模块会经常更新,这种方式会导致其他使用ActiveMQ的JMS Client发送消息失败。所以还是独立的ActiveMQ比较好。首先下载
ActiveMQ
,我下载的是5.10版。解压缩到一个目录。修改conf/activemq.xml配置文件,把持久化方式改为数据库保存
具体详细的配置说明我也没找到,不过可以参照其 /activemq-core-5.1.0.xsd 文件
然后启动ActvieMQ服务(bin/activemq.bat),服务器配置就到到这儿了。

- <!--此处默认采用TCP Connector,端口61616,可以不用修改-->
- <transportConnectors>
- <transportConnector name="openwire" uri="tcp://localhost:61616" discoveryUri="multicast://default"/>
- </transportConnectors>
- <persistenceAdapter>
- <jdbcPersistenceAdapter dataSource="#oracle-ds"/>
- </persistenceAdapter>
- <bean id="oracle-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
- <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
- <property name="url" value="jdbc:oracle:thin:@192.168.1.10:1521:mysid"/>
- <property name="username" value="huzl"/>
- <property name="password" value="j7Z"/>
- <property name="maxActive" value="200"/>
- <property name="poolPreparedStatements" value="true"/>
- </bean>
- <!--此处默认采用TCP Connector,端口61616,可以不用修改-->
- <transportConnectors>
- <transportConnector name="openwire" uri="tcp://localhost:61616" discoveryUri="multicast://default"/>
- </transportConnectors>
- <persistenceAdapter>
- <jdbcPersistenceAdapter dataSource="#oracle-ds"/>
- </persistenceAdapter>
- <bean id="oracle-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
- <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
- <property name="url" value="jdbc:oracle:thin:@192.168.1.10:1521:mysid"/>
- <property name="username" value="huzl"/>
- <property name="password" value="j7Z"/>
- <property name="maxActive" value="200"/>
- <property name="poolPreparedStatements" value="true"/>
- </bean>
具体详细的配置说明我也没找到,不过可以参照其 /activemq-core-5.1.0.xsd 文件
然后启动ActvieMQ服务(bin/activemq.bat),服务器配置就到到这儿了。