Linux apache-activemq安装及配置
1. apache-activemq安装
备注:apache-activemq安装时JDK必须在1.5以,否则不能访问。
(1)从官网下载Activemq Linux包http://activemq.apache.org/download.html.这儿我下载的是 apache-activemq-5.4.3-bin.tar.gz
(2)解压包
tar zxvf apache-activemq-5.4.3-bin.tar.gz |
(3)进入解压后的文件夹apache-activemq-5.4.3-bin中的bin目录
cd apache-activemq-5.4.3-bin/bin目录 |
(4)在启动前先配置activemq。在bin目录下执行
./activemq setup /root/.activemqrc |
(5)提高activemq的权限
chmod 600 /root/.activemqrc |
(6)启动activemq
./activemq start |
(7)最后http访问出现以下代表成功
http://IP:61616/若出现下边内容则说明安装成功(备注在启动前主要要开启端口61616)
2. apache-activemq自启动设置
修改启动脚本/opt/activemq/bin/activemq,将开头处改为:
#!/bin/sh ### BEGIN INIT INFO # Provides: activemq # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 6 # Short-Description: ActiveMQ server ### END INIT INFO
|
然后创建软链接:
# ln -s /opt/activemq/bin/activemq /etc/init.d/ |
然后进入系统开机自启动配置文件rc.local的编辑界面
vi /etc/rc.local |
然后插入启动语句:
bash /etc/init.d/activemq start |
最后保存
3. apache-activemq调优配置
1. JVM内存设置:
注意不要修改%ACTIVEMQ_HOME%/bin目录下activemq文件, 要改 /root/.activemqrc 文件(如果没有找到.activemqrc文件,运行一次activemq就自动生成了),找到文件中的ACTIVEMQ_OPTS_MEMORY选项,设置为:
ACTIVEMQ_OPTS_MEMORY="-Xms2048M -Xmx2048M"
注意不要多余的空格。
2. activemq参数配置,打开%ACTIVEMQ_HOME%/confg目录下的activemq.xml文件,进行如下修改(红色部分为修改的内容)。
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- START SNIPPET: example -->
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:amq="http://activemq.apache.org/schema/core"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd">
<!-- Allows us to use system properties as variables in this configuration file -->
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<value>file:${activemq.base}/conf/credentials.properties</value>
</property>
</bean>
<!--
The <broker> element is used to configure the ActiveMQ broker.
-->
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.base}/data" destroyApplicationContextOnStop="true">
<!--
For better performances use VM cursor and small memory limit.
For more information, see:
http://activemq.apache.org/message-cursors.html
Also, if your producer is "hanging", it's probably due to producer flow control.
For more information, see:
http://activemq.apache.org/producer-flow-control.html
-->
<destinationPolicy>
<policyMap>
<policyEntries>
<policyEntry topic=">" producerFlowControl="true" memoryLimit="200mb">
<pendingSubscriberPolicy>
<vmCursor />
</pendingSubscriberPolicy>
</policyEntry>
<policyEntry queue=">" producerFlowControl="true" memoryLimit="200mb">
</policyEntry>
</policyEntries>
</policyMap>
</destinationPolicy>
<!--
The managementContext is used to configure how ActiveMQ is exposed in
JMX. By default, ActiveMQ uses the MBean server that is started by
the JVM. For more information, see:
http://activemq.apache.org/jmx.html
-->
<managementContext>
<managementContext createConnector="false"/>
</managementContext>
<!--
Configure message persistence for the broker. The default persistence
mechanism is the KahaDB store (identified by the kahaDB tag).
For more information, see:
http://activemq.apache.org/persistence.html
-->
<persistenceAdapter>
<kahaDB directory="${activemq.base}/data/kahadb"/>
</persistenceAdapter>
<!--
The systemUsage controls the maximum amount of space the broker will
use before slowing down producers. For more information, see:
http://activemq.apache.org/producer-flow-control.html
-->
<systemUsage>
<systemUsage>
<memoryUsage>
<memoryUsage limit="100 mb"/> /////////////////修改/////////////////
</memoryUsage>
<storeUsage>
<storeUsage limit="4 gb"/> ///////////////修改添加//////////////////////
</storeUsage>
<tempUsage>
<tempUsage limit="600 mb"/> //////////////修改添加///////////////////////
</tempUsage>
</systemUsage>
</systemUsage>
<!-- -->
<!--
The transport connectors expose ActiveMQ over a given protocol to
clients and other brokers. For more information, see:
http://activemq.apache.org/configuring-transports.html
-->
<transportConnectors>
<transportConnector name="openwire" uri="tcp://0.0.0.0:61616"/>
</transportConnectors>
</broker>
<!--
Enable web consoles, REST and Ajax APIs and demos
Take a look at ${ACTIVEMQ_HOME}/conf/jetty.xml for more details
-->
<import resource="jetty.xml"/>
</beans>
<!-- END SNIPPET: example -->