安装:
1、解压
apache-activemq-5.15.8-bin.rar
2、启动:进入解压目录activemqx.x/bin/win64/(JDK1.8+) (E:\Java\jdk1.6.0_32不支持)
双击activemq.bat
3、访问
http://localhost:8161/
4、activemq安全设置(管理后台密码):
ActiveMQ使用的是jetty服务器, 打开conf/jetty.xml文件,找到
<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>
将property name为authenticate的属性value=“false” 改为"true"
控制台的登录用户名密码保存在conf/jetty-realm.properties文件中,内容如下:
username: password [,rolename …]
admin: admin, admin
5、消息消费者密码认证(conf下)
1)credentials.properties:
activemq.username=system
activemq.password=manager
guest.password=password
2)在activemq.xml文件broker标签内加上
<plugins>
<simpleAuthenticationPlugin>
<users>
<authenticationUser username="${activemq.username}" password="${activemq.password}" groups="users,admins"/>
<authenticationUser username="guest" password="${guest.password}" groups="guests"/>
</users>
</simpleAuthenticationPlugin>
</plugins>
代码:(带用户名和密码的重载)
ConnectionFactory connectionFactory =
new ActiveMQConnectionFactory(“system”,“manager”,“tcp://localhost:61616”);
6、其他协议:ActiveMQ支持的client-broker通讯协议有:TCP、NIO、UDP、SSL、Http(s)、VM
TCP协议传输可靠性高,稳定性强
NIO更侧重于底层的访问操作,对同一资源可有更多的client调用和服务器端有更多的负载
UDP通常在快速数据传递和不怕数据丢失的场景中使用
在activemq.xml的下添加nio协议
代码:new ActiveMQConnectionFactory(“system”,“manager”,“nio://localhost:61618”);
会话:
createSession(paramA,paramB);
paramA 取值有:true or false 表示是否支持事务
paramB 取值有:Session.AUTO_ACKNOWLEDGE,Session.CLIENT_ACKNOWLEDGE,DUPS_OK_ACKNOWLEDGE,SESSION_TRANSACTED
createSession(paramA,paramB);
paramA是设置事务的,paramB设置acknowledgment mode
paramA设置为false时:paramB的值可为Session.AUTO_ACKNOWLEDGE,Session.CLIENT_ACKNOWLEDGE,DUPS_OK_ACKNOWLEDGE其中一个。
paramA设置为true时:paramB的值忽略, acknowledgment mode被jms服务器设置为SESSION_TRANSACTED 。
Session.AUTO_ACKNOWLEDGE为自动确认,客户端发送和接收消息不需要做额外的工作。
Session.CLIENT_ACKNOWLEDGE为客户端确认。客户端接收到消息后,必须调用javax.jms.Message的acknowledge方法。jms服务器才会删除消息。
DUPS_OK_ACKNOWLEDGE允许副本的确认模式。一旦接收方应用程序的方法调用从处理消息处返回,会话对象就会确认消息的接收;而且允许重复确认。在需要考虑资源使用时,这种模式非常有效。