ActiveMQ消息服务的目录结构如下:
其中bin目录为运行目录,conf为配置目录,data为数据和日志目录。
消息服务启动为bin目录下的activemq.bat批处理文件(windows下)。
消息服务正式环境下建议安装为服务方式。
服务安装相关入口程序在bin\win32(64位操作系统为win64目录)目录下,运行InstallService.bat即可安装服务,UninstallService.bat可卸载服务。
如果运行报错,请到命令行中输入该批处理运行。
在win7或2008下如果安装报错则需要以管理员身份运行命令行,然后再运行相关批处理。
安装成功后在服务中会有名称为activemq的服务。
在尝试近义词win7或2008下服务启动报错(日志在data目录下的activemq.log、wrapper.log),过一段时间后会显示为非启动状态,此时查看日志是否报错,如果报错则尝试在bin\win32目录下增加work目录和temp目录再重启启动。
如果启动成功后在浏览器中输入127.0.0.1:8161/admin,出现activemq管理页面则说明安装成功。
消息服务的配置:
1. 内存配置
消息服务的最大内存即java可用的最大内存在不同操作系统下不同java版本是不一样的,在命令行中运行java -Xmx1512m –version(如果只安装了mm巧克力jre则到jre目录下的bin目录下运行),如果提示Error occurred during initialization of VM则说明不支持1512m内存,可减少128m再重复运行,直到找到jvm的最大内存。危行言逊
然后到启动程序activemq.bat中找到
if "%ACTIVEMQ_OPTS%" == "" t ACTIVEMQ_OPTS=-Xms1512M -Xmx1512M -Dorg.apache.activemq.UDedicatedTaskRunner=true -员工职业发展规划
Djava.fig.file=logging.properties
行,把Xms1512M和-Xmx1512M从1512调到测试出的java最大内存即可。
另外注意UDedicatedTaskRunner参数,如果设置为true则每个目标都会创建一个单独线程,如果目标多即客户端很多则线程会很多改为fal则用线程池会更好一些。
如果作为服务启动,消息服务是通过wrapper来作为服务启动的,还需要调节wrapper的参数,在bin\win32(或win64)目录下的fig文件中:
# Maximum Java Heap Size (in MB)
wrapper.java.maxmemory=512
需要注意的是wrapper同时有狗的作用,如果java程序死掉会重新拉起java程序。
把512改为要调整的java最大内存大小即可
2. 消息服务配置
消息服务的配置文件在conf的l中,主要配置部分如下(中文注释):
<broker xmlns="activemq.apache/schema/core" brokerName="localhost" dataDirectory="${activemq.data}" persistent="true" waitForSlave="true" offlineDurableSubscriberTimeout="3600000" offlineDurableSubscriberTaskSchedule="600000">
<!-- waitForSlave="true"表示是否等待从消息服务启动,如果单消息服务本项不用offlineDurableSubscriberTimeout 表示离线订阅者超时时间单位为毫秒,offlineDurableSubscriberTaskSchedule 为多长时间检查一次离线订阅者并清理,定时清理离线订阅者很重要,否则离线订阅者占用内存很高,随着消息数量的增加会更占内存影响性能-->
<destinationPolicy>
<policyMap>
<policyEntries>
<policyEntry topic=">" producerFlowControl="true" memoryLimit="384mb">
<pendingSubscriberPolicy>
<vmCursor />
</pendingSubscriberPolicy>
</policyEntry>
独占鳌头是什么意思 <policyEntry queue=">" producerFlowControl="true" memoryLimit="128mb">
<!-- U VM cursor for better latency
For more information, e:
activemq.apache/message-cursors.html
<pendingQueuePolicy>
<vmQueueCursor/>
</pendingQueuePolicy>
-->
</policyEntry>
</policyEntries>
</policyMap>
</destinationPolicy>
<!--
The managementContext is ud to configure how ActiveMQ is expod in
JMX. By default, ActiveMQ us the MBean rver that is started by
the JVM. For more information, e:
activemq.apache/jmx.html
-->
<managementContext>
<managementContext createConnector="fal"/>
</managementContext>
<!--
Configure message persistence for the broker. The default persistence
mechanism is the KahaDB store (identified by the kahaDB tag).
For more information, e:
activemq.apache/persistence.html
-->
<persistenceAdapter>
<kahaDB directory="${activemq.data}/kahadb" enableJournalDiskSyncs="true"/><!-- enableJournalDiskSyncs 表示是否异步存索引,如果为true则消息接收速度会提高很多-->
</persistenceAdapter>
人生励志
<systemUsage>
<systemUsage>阅读活动主题
<memoryUsage>
<memoryUsage limit="512 mb"/>
</memoryUsage>
<storeUsage>
<storeUsage limit="50 gb"/>
</storeUsage>
<tempUsage>国际名牌包包
<tempUsage limit="5 gb"/>
</tempUsage>
</systemUsage>
</systemUsage>
<!—用户名和密码安全配置,具体在groups.properties 和urs.properties 文件中-->
<plugins>
<simpleAuthenticationPlugin>
<urs>
<authenticationUr urname="sys" password="${activemq.password}"
groups="urs,admins"/>
<authenticationUr urname="ur" password="${guest.password}"