ActiveMQ安装及JAVA集成使用
ActiveMQ简介及官网下载
Apache ActiveMQ是开源、多协议、基于java的消息服务器,提供了支持消息生产-消费模式(一对一),发布-订阅模式(一对多).
官网地址:http://activemq.apache.org/components/classic/download/
资源及操作文档下载:https://download.csdn.net/download/weixin_39172079/12192940
ActiveMQ安装配置及WebApp控制台访问
下载
解压
创建一个systemd服务文件并启动
拷贝一下内容到activemq.servie
[Unit]
Description=ActiveMQ service
After=network.target
[Service]
Type=forking
ExecStart=/var/activemq/bin/activemq start
ExecStop=/var/activemq/bin/activemq stop
User=root
Group=root
Restart=always
RestartSec=9
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=activemq
[Install]
WantedBy=multi-user.target
查看java所在目录:whereis java
设置activemq配置文件/var/activemq/bin/env中的JAVA_HOME
JAVA_HOME="/usr/local/java/jdk1.8.0_181"
JAVACMD=“auto”
加载systemctl配置文件: systemctl daemon-reload
启动服务器:systemctl start activemq
查看服务状态: systemctl status activemq
创建软件链接:ln -s /usr/lib/systemd/system/activemq.service /etc/systemd/system/multi-user.target.wants/activemq.service
检测是否开启成功(enable):systemctl list-unit-files |grep activemq
防火墙配置,Web管理端口默认为8161(admin/admin),通讯端口默认为61616
web控制台访问
访问地址:http://ip:8161 (broker登录账号:admin/admin)
可以管理queue和topic及查看连接activemq的客户端信息
java通过API调用ActiveMQ接口
生产-消费模式(一对一)
pom.xml依赖:
<dependencies>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-all</artifactId>
<version>5.15.8</version>
</dependency>
<dependency>
<groupId>org.eclipse.paho</groupId>
<artifactId>org.eclipse.paho.client.mqttv3</artifactId>
<version>1.2.0</version>
</dependency>
</dependencies>
//生产者代码
package com.soyking.study.mq.activemq;
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
/**
* 消息生产者
*/
public class ProductsMeg {
private static ActiveMQConnectionFactory connectionFactory;
private static Connection conn;
private static Session session;
public static void main(String[] args) throws JMSException {
//创建连接
connectionFactory = new ActiveMQConnectionFactory("tcp://192.168.43.166:61616");
conn = connectionFactory.createConnection();
conn.start();
//创建会话
session = conn.createSession(false,Session.AUTO_ACKNOWLEDGE);
// 4、创建发布的目标 topic
Destination destination = session.createQueue("queueLocal");
// 5、创建生产者消息
MessageProducer producer = session.createProducer(destination);
// 设置生产者的模式,有两种可选 持久化 / 不持久化
produ