CentOS 7搭建ActiveMQ

简介
ActiveMQ是一个开源的消息中间件,它支持多种跨语言的客户端和协议,可以用于实现分布式系统的异步通信,本文将详细介绍如何在CentOS 7环境下搭建ActiveMQ。
环境准备
系统要求
- CentOS 7操作系统
- Java环境(推荐Java 8及以上版本)
安装Java 由于ActiveMQ依赖于Java环境,因此首先需要确保系统中已安装Java,以下是在CentOS 7上安装Java 8的步骤:
sudo yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
检查Java版本
java -version
确保输出显示Java 8或更高版本。
安装ActiveMQ

下载ActiveMQ 访问ActiveMQ官网(http://activemq.apache.org/)下载最新版本的ActiveMQ。
解压ActiveMQ
tar -zxvf activemq-5.15.12-bin.tar.gz
进入ActiveMQ目录
cd activemq-5.15.12
启动ActiveMQ
bin/activemq start
启动成功后,可以在命令行中看到ActiveMQ的启动日志。
配置ActiveMQ
修改配置文件 编辑
conf/activemq.xml文件,根据需要修改配置,以下是一些常见的配置项:<broker> <transportConnectors> <transportConnector name="openwire" uri="tcp://0.0.0.0:61616"/> </transportConnectors> <systemProperties> <property name="java.naming.factory.initial" value="org.apache.activemq.jndi.ActiveMQInitialContextFactory"/> <property name="java.naming.provider.url" value="tcp://localhost:61616"/> <property name="java.naming.security.principal" value="admin"/> <property name="java.naming.security.password" value="admin"/> </systemProperties> </broker>修改JVM参数 编辑
bin/activemq文件,修改JVM参数,增加最大堆内存:
-Xms512m -Xmx1024m
访问ActiveMQ管理界面
打开浏览器 输入以下地址访问ActiveMQ管理界面:
http://localhost:8161/admin/登录 用户名:admin 密码:admin
FAQs
Q1:如何连接ActiveMQ? A1:可以使用ActiveMQ提供的客户端API连接到ActiveMQ服务器,以下是一个使用Java连接ActiveMQ的示例代码:
import org.apache.activemq.ActiveMQConnectionFactory;
public class ActiveMQClientExample {
public static void main(String[] args) {
try {
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
Connection connection = connectionFactory.createConnection();
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Queue queue = session.createQueue("TestQueue");
MessageProducer producer = session.createProducer(queue);
TextMessage message = session.createTextMessage("Hello, ActiveMQ!");
producer.send(message);
System.out.println("Message sent successfully.");
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
}
} Q2:如何创建主题和订阅者? A2:ActiveMQ支持点对点(Queue)和发布/订阅(Topic)两种消息模型,以下是一个创建主题和订阅者的示例代码:
import javax.jms.*;
public class TopicSubscriberExample {
public static void main(String[] args) {
try {
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
Connection connection = connectionFactory.createConnection();
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Topic topic = session.createTopic("TestTopic");
MessageConsumer consumer = session.createConsumer(topic);
consumer.setMessageListener(new MessageListener() {
public void onMessage(Message message) {
TextMessage textMessage = (TextMessage) message;
try {
System.out.println("Received message: " + textMessage.getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
});
System.out.println("Waiting for messages...");
Thread.sleep(10000);
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
}
} 通过以上步骤,您可以在CentOS 7上成功搭建ActiveMQ,并使用Java客户端连接和订阅消息。
