Activemq的安装及启动

1. 基本了解

  这一部分内容主要来源网络,这里整理归纳到博客中,阅读之后对ActiveMq有一个基本的认知和了解。
1. ActiveMQ概念
  ActiveMQ是Apache推出的,一款开源的,完全支持JMS1.1和J2EE 1.4规范的JMSProvider实现的消息中间件(Message Oriented Middleware,MOM)。

2. ActiveMQ作用
  最主要的功能就是:实现JMS Provider,用来帮助实现高可用、高性能、可伸缩、易用和安全的企业级面向消息服务的系统。

3. ActiveMQ特点

  • 完全支持JMS1.1和J2EE 1.4规范 (持久化,XA消息,事务)
  • 支持多种传送协议:in-VM,TCP,SSL,NIO,UDP,JGroups,JXTA
  • 可插拔的体系结构,可以灵活定制,如:消息存储方式、安全管理等
  • 很容易和Application Server集成使用
  • 多种语言和协议编写客户端。语言: Java,C,C++,C#,Ruby,Perl,Python,PHP
  • 从设计上保证了高性能的集群,客户端-服务器,点对点
  • 可以很容易的和Spring结合使用
  • 支持通过JDBC和journal提供高速的消息持久化

2. 基本安装和配置

  这一部分阅读后了解activemq在windows和linux下的安装和基本配置。
  windows下activemq的安装
  1.到官网下载activemq,windows下下载zip包,linux下下载gz包,这里下载的是5.15.0的版本。
  2.解压到任意目录,但是看官网说如果文件路径过长可能会有问题,为求稳妥,目录不要放的过深。
  3.到activimq解压目录下的bin目录中的win64去运行activemq.bat(我的电脑是win7 64位),直接运行bin目录下的activemq.bat我的会直接闪退,注意activemq的启动需要jdk的环境。
  4.启动成功后,在浏览器中输入:http://localhost:8161/admin/ 打开activemq的管控台,用户名和密码默认都是admin,登陆进去后可看到管控界面。
  windows下activemq的简单配置
  1.管控台密码配置,也就是上面输入的admin
    在安装目录下的conf/jetty.xml中有如下内容

1
2
3
4
5
<bean id="securityConstraint" class="org.eclipse.jetty.util.security.Constraint">
<property name="name" value="BASIC" />
<property name="roles" value="admin" />
<property name="authenticate" value="true" />
</bean>

    确保 authenticate 的值为true(默认就为true)
    控制台的登录用户名密码保存在conf/jetty-realm.properties文件中,内容如下:

1
2
3
4
# Defines users that can access the web (console, demo, etc.)
# username: password [,rolename ...]
#用户名 : 密码 ,角色名
admin: newpwd, admin

  2.安全配置(消息安全)
    ActiveMQ 如果不加入安全机制的话,任何人只要知道消息服务的具体地址(包括 ip,端口,消息地址[队列或者主题地址]),就可以任意的发送、接收消息。关于 ActiveMQ 的安全可以参考官方的安全配置方式,我们这里使用配置简单授权方式:
    在 conf/activemq.xml 文件中在 broker 标签最后加入以下内容即可:

1
2
3
4
5
6
7
<plugins>
<simpleAuthenticationPlugin>
<users>
<authenticationUser username="yourname" password="yourpwd" groups="users,admins"/>
</users>
</simpleAuthenticationPlugin>
</plugins>

    这里定义用户名为 yourname,密码为 yourpwd,角色为 users,admins,如果这里做了配置,那么在编写客户端创建连接工厂时需要指定用户名和密码,在之后的代码中会注释说明。注意配置了这个之后,浏览器的控制台就无法查看该队列的信息了(我这里是无法查看了)

  linux(CentOS)下activemq的安装
  1.到官网下载activemq,windows下下载zip包,linux下下载gz包,这里下载的是5.15.0的版本。
  2.将下载的gz包上传至linux系统中,也可以直接在linux的存放目录下直接下载

1
wget http://59.109.99.40/IXC492c5648ba8654fcfe0e8dd805738eb4/apache//activemq/5.15.1/apache-activemq-5.15.1-bin.tar.gz

  3.解压安装

1
tar -zxvf apache-activemq-5.15.1-bin.tar.gz

  4.启动执行:进入解压后的目录的bin目录中,如果启动脚本 activemq 没有可执行权限,此时则需要授权,执行如下命令即可:

1
chmod 755 ./activemq

  5.防火墙中打开对应的端口:ActiveMQ 需要用到两个端口,
一个是消息通讯的端口(默认为 61616),
一个是管理控制台端口(默认为 8161)可在 conf/jetty.xml 中修改,默认如下:

1
2
3
4
5
<bean id="jettyPort" class="org.apache.activemq.web.WebConsolePort" init-method="start">
<!-- the default port number for the web console -->
<property name="host" value="0.0.0.0"/>
<property name="port" value="8161"/>
</bean>

  在防火墙中添加端口命令如下:

1
vi /etc/sysconfig/iptables

  在文件中添加如下配置:

1
2
-A INPUT -m state --state NEW -m tcp -p tcp --dport 61616 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8161 -j ACCEPT

  重启防火墙,启动ActiveMQ

1
2
service iptables restart
./activemq start

  在浏览器上访问:http://linux的IP地址:8161 用户名及密码默认都为admin

  linux下activemq配置和说明同windows相同
  1.管控台密码配置,也就是进入网页管控台时输入的admin
    在安装目录下的conf/jetty.xml中有如下内容

1
2
3
4
5
<bean id="securityConstraint" class="org.eclipse.jetty.util.security.Constraint">
<property name="name" value="BASIC" />
<property name="roles" value="admin" />
<property name="authenticate" value="true" />
</bean>

    确保 authenticate 的值为true(默认就为true)
    控制台的登录用户名密码保存在conf/jetty-realm.properties文件中,要执行的命令及文件内容如下:

1
2
cd ../
vi conf/jetty-realm.properties

1
2
3
4
# Defines users that can access the web (console, demo, etc.)
# username: password [,rolename ...]
#用户名 : 密码 ,角色名
admin: newpwd, admin

  2.安全配置(消息安全)
    ActiveMQ 如果不加入安全机制的话,任何人只要知道消息服务的具体地址(包括 ip,端口,消息地址[队列或者主题地址]),就可以任意的发送、接收消息。关于 ActiveMQ 的安全可以参考官方的安全配置方式,我们这里使用配置简单授权方式:

1
vi conf/activemq.xml

  为了activeMQ的消息安全性在 conf/activemq.xml 文件中的 broker 标签最后加入以下内容后保存退出(按esc键,按shift+:键,输入wq,按enter键):

1
2
3
4
5
6
7
<plugins>
<simpleAuthenticationPlugin>
<users>
<authenticationUser username="yourname" password="yourpwd" groups="users,admins"/>
</users>
</simpleAuthenticationPlugin>
</plugins>

  这里定义用户名为 yourname,密码为 yourpwd,角色为 users,admins,如果这里做了配置,那么在编写客户端创建连接工厂时需要指定用户名和密码,在之后的代码中会注释说明。注意配置了这个之后,浏览器的控制台就无法查看该队列的信息了(我这里是无法查看了)

  以上关于ActiveMQ的在windows和linux环境下的安装及简单配置,整理完收工。


-------------本文结束感谢您的阅读-------------