ActiveMQ消息服务的目录结构如下:
其中bin目录为运行目录,conf为配置目录,data为数据和日志目录。 消息服务启动为bin目录下的activemq.bat批处理文件(windows下)。 消息服务正式环境下建议安装为服务方式。
服务安装相关入口程序在bin\\win32(位操作系统为win目录)目录下,运行InstallService.bat即可安装服务,UninstallService.bat可卸载服务。
如果运行报错,请到命令行中输入该批处理运行。
在win7或2008下如果安装报错则需要以管理员身份运行命令行,然后再运行相关批处理。
安装成功后在服务中会有名称为activemq的服务。
在win7或2008下服务启动报错(日志在data目录下的activemq.log、wrapper.log),过一段时间后会显示为非启动状态,此时查看日志是否报错,如果报错则尝试在bin\\win32目录下增加work目录和temp目录再重启启动。
如果启动成功后在浏览器中输入http://127.0.0.1:8161/admin,出现activemq管理页面则说明安装成功。
消息服务的配置: 1. 内存配置
消息服务的最大内存即java可用的最大内存在不同操作系统下不同java版本是不一样的,在命令行中运行java -Xmx1512m –version(如果只安装了jre则到jre目录下的bin目录下运行),如果提示Error occurred during initialization of VM则说明不支持1512m内存,可减少128m再重
复运行,直到找到jvm的最大内存。 然后到启动程序activemq.bat中找到
if \"%ACTIVEMQ_OPTS%\" == \"\" set ACTIVEMQ_OPTS=-Xms1512M -Xmx1512M -Dorg.apache.activemq.UseDedicatedTaskRunner=true -
Djava.util.logging.config.file=logging.properties 行,把Xms1512M和-Xmx1512M从1512调到测试出的java最大内存即可。
另外注意UseDedicatedTaskRunner参数,如果设置为true则每个目标都会创建一个单独线程,如果目标多即客户端很多则线程会很多改为false则用线程池会更好一些。
如果作为服务启动,消息服务是通过wrapper来作为服务启动的,还需要调节wrapper的参数,在bin\\win32(或win)目录下的wrapper.config文件中:
# Maximum Java Heap Size (in MB) wrapper.java.maxmemory=512
需要注意的是wrapper同时有狗的作用,如果java程序死掉会重新拉起java程序。
把512改为要调整的java最大内存大小即可 2. 消息服务配置
消息服务的配置文件在conf的activemq.xml中,主要配置部分如下(中文注释):
offlineDurableSubscriberTaskSchedule=\"600000\"> \" producerFlowControl=\"true\" memoryLimit=\"384mb\">
\"producerFlowControl=\"true\" memoryLimit=\"128mb\">
groups=\"users,admins\"/> groups=\"users\"/>
3. 主从配置:
主服务配置基本不变,只需变从服务配置。 从服务配置主要部分如下:
\" producerFlowControl=\"true\" memoryLimit=\"384mb\">
\" producerFlowControl=\"true\" memoryLimit=\"128mb\">
groups=\"users,admins\"/> groups=\"users\"/>
name=\"openwire\"