一、下载ActiveMQ


先去ActiveMQ官网下载最新的安装包,官方下载地址为:http://activemq.apache.org/download.html


Activemq安装 配置java activemq部署_apache


选择Download Archives选择版本进行下载


Activemq安装 配置java activemq部署_用户名_02


它这里提供了很多版本,我们选择最新的版本进行下载


Activemq安装 配置java activemq部署_Activemq安装 配置java_03


下载下来之后进行解压,解压之后如下


Activemq安装 配置java activemq部署_Activemq安装 配置java_04


目录说明:


bin----存放的是脚本文件
conf----存放的是基本配置文件
data----存放的是日志文件
docs----存放的是说明文档
examples----存放的是简单的实例
lib----存放的是activemq所需jar包
webapps----用于存放项目的目录


二、运行ActiveMQ


然后双击apache-activemq-5.5.1\bin\win64\activemq.bat运行ActiveMQ程序。


Activemq安装 配置java activemq部署_Activemq安装 配置java_05


(注意:我的机子是64位的,所以这里启动的64位的)


Activemq安装 配置java activemq部署_Activemq安装 配置java_06


启动ActiveMQ以后,访问:http://localhost:8161/admin/


Activemq安装 配置java activemq部署_apache_07


他会要你输入用户名与密码,默认的是admin/admin。输入之后点击确定就会进入首页


Activemq安装 配置java activemq部署_Activemq安装 配置java_08



三、控制面板


1)首页


Activemq安装 配置java activemq部署_apache_09


简单介绍下导航栏:

Queues:队列方式消息。
Topics:主题方式消息。
Subscribers:消息订阅监控查询。
Connections:查看链接数,分别可以查看xmpp、ssl、stomp、openwire、ws和网络链接。
Network:网络链接数监控。
Scheduled:没有用到,不太清楚。
Send:发送消息数据


2)Quence队列



Activemq安装 配置java activemq部署_出队_10



Name ----队列名称
Number Of Pending Messages ----等待消费的消息 这个是当前未出队列的数量。可以理解为总接收数-总出队列数
Number Of Consumers  ----消费者 这个是消费者端的消费者数量
Messages Enqueued ----进入队列的消息  进入队列的总数量,包括出队列的。 这个数量只增不减
Messages Dequeued ----出了队列的消息  可以理解为是消费这消费掉的数量

这个要分两种情况理解

1.在queues里它和进入队列的总数量相等(因为一个消息只会被成功消费一次),如果暂时不等是因为消费者还没来得及消费。

2.在 topics里 它因为多消费者从而导致数量会比入队列数高。

简单的理解上面的意思就是

当有一个消息进入这个队列时,等待消费的消息是1,进入队列的消息是1。
当消息消费后,等待消费的消息是0,进入队列的消息是1,出队列的消息是1.
在来一条消息时,等待消费的消息是1,进入队列的消息就是2.

没有消费者时  Pending Messages   和 入队列数量一样
有消费者消费的时候 Pedding会减少 出队列会增加
到最后 就是 入队列和出队列的数量一样多
以此类推,进入队列的消息和出队列的消息是池子,等待消费的消息是水流。  




四、配置ActiveMQ


● 启动后的ActiveMQ的数据位于:$ACTIVEMQ_HOME/data/目录内

● 启动后的ActiveMQ运行日志位于:$ACTIVEMQ_HOME/data/目录内的activemq.log文件

● 如果需要改ActiveMQ的日志配置可以通过修改$ACTIVEMQ_HOME/conf/log4j.properties


1)用户名密码设置


打开conf/jetty.xml


Activemq安装 配置java activemq部署_出队_11

将property name为authenticate的属性value="false" 改为"true"


<bean id="securityConstraint" class="org.eclipse.jetty.http.security.Constraint">
	<property name="name" value="BASIC" />
	<property name="roles" value="admin" />
	<property name="authenticate" value="false" />
</bean>



开启用户验证,控制台的登录用户名密码保存在conf/jetty-realm.properties文件中,内容如下:

# Defines users that can access the web (console, demo, etc.)
# username: password [,rolename ...]
admin: admin, admin

值得注意的是 用户名和密码的格式是
用户名 : 密码 ,角色名


2)配置内存


bin中activemq.bat 中的第一行 加上 :

REM 配置内存
set ACTIVEMQ_OPTS=-Xms1G -Xmx1G




3)修改客户端连接密码


1.修改activemq.xml配置,需要新增一个插件,在<broker>节点里面<systemUsage>节点前面添加如下


<plugins> 
	<simpleAuthenticationPlugin> 
		<users> 
			<authenticationUser username="${activemq.username}" password="${activemq.password}" groups="users,admins"/> 
		</users> 
	</simpleAuthenticationPlugin> 
</plugins>




2.用户名密码文件为:credentials.properties


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


# Defines credentials that will be used by components (like web console) to access the broker 


activemq.username=system 
activemq.password=manager 
guest.password=password