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 -->