如何在CentOS 8上安装Apache ActiveMQ

时间:2020-02-23 14:31:07  来源:igfitidea点击:

欢迎使用有关如何在CentOS 8上安装Apache ActiveMQ的今天指南。Apache ActiveMQ是一种开源且使用Java编写的最流行的多协议消息传递服务器。 Apache ActiveMQ使我们可以将消息从一个应用程序(发送者)发送到另一个(接收者/消费者)。该消息代理具有合理水平的功能,对客户端库的支持以及我们可以参考的成熟文档。

Apache ActiveMQ的主要功能

这是关键的Apache ActiveMQ的摘要。它支持Java,C,C ++,C#,Ruby,Perl,Python,PHP的各种跨语言客户端和协议。在JMS客户端和JMS客户端中全面支持企业集成模式。 Message Broker支持许多高级功能(例如消息组,虚拟目标,通配符和组合目标)支持可插拔的传输协议(例如VM,TCP,SSL,NIO,UDP,多播,JGroups和JXTA传输)完全支持JMS 1.1和J2EE 1.4,并支持瞬态,持久性,事务性和XA消息传递REST API提供与消息传递无关的技术和语言中立的基于Web的API支持JDBC和高性能期刊的使用以实现非常快速的持久性专为高性能集群,客户端-服务器,基于对等的通信而设计Ajax支持对Web的网络流支持使用纯DHTML的浏览器,允许Web浏览器成为消息传递结构的一部分。CXF和Axis支持,以便ActiveMQ可以可以轻松地放入这两个Web服务堆栈中以提供可靠的消息传递可以用作内存JMS提供程序,非常适合单元测试JMS

在CentOS 8上安装Apache ActiveMQ

写这篇博客文章是为了指导我们完成CentOS 8 Linux发行版上的Apache ActiveMQ安装。该步骤很容易遵循,并且不需要良好的Linux背景。

安装Java

首先在CentOS 8上安装Java:

在CentOS 8上安装Java 11

在CentOS 8上安装Java 8

在CentOS 8上下载Apache ActiveMQ

访问Apache ActiveMQ下载页面以获取最新的Apache ActiveMQ。

wget https://www.apache.org/dist/activemq/5.15.11/apache-activemq-5.15.11-bin.tar.gz

解压缩下载的文件。

tar xvf apache-activemq-5.15.11-bin.tar.gz

移动目录创建的/opt路径。

sudo mv apache-activemq-*//opt/apache-activemq

这是目录中文件的列表。

$ls -lh /opt/apache-activemq/
total 18M
-rwxr-xr-x. 1 cloud-user cloud-user  18M Nov 20 19:59 activemq-all-5.15.11.jar
drwxrwxr-x. 5 cloud-user cloud-user  147 Mar  6 21:14 bin
drwxr-xr-x. 2 cloud-user cloud-user 4.0K Mar  6 21:14 conf
drwxr-xr-x. 2 cloud-user cloud-user   26 Mar  6 21:14 data
drwxr-xr-x. 2 cloud-user cloud-user   76 Mar  6 21:14 docs
drwxr-xr-x. 7 cloud-user cloud-user   71 Nov 20 20:25 examples
drwxr-xr-x. 6 cloud-user cloud-user 4.0K Mar  6 21:14 lib
-rw-r--r--. 1 cloud-user cloud-user  40K Nov 20 20:25 LICENSE
-rw-r--r--. 1 cloud-user cloud-user 3.3K Nov 20 20:25 NOTICE
-rw-r--r--. 1 cloud-user cloud-user 2.6K Nov 20 20:25 README.txt
drwxr-xr-x. 6 cloud-user cloud-user   95 Mar  6 21:14 webapps
drwxrwxr-x. 3 cloud-user cloud-user   18 Mar  6 21:14 webapps-demo

在CentOS 8上创建Apache ActiveMQ系统单元

创建activemq用户以运行服务。

sudo useradd activemq

设置目录权限。

sudo chown -R activemq:activemq /opt/apache-activemq/

创建一个用于管理Apache ActiveMQ服务的Systemd单元文件。

$sudo vim /etc/systemd/system/apache-activemq.service

[Unit]
Description=Apache ActiveMQ Messaging Server
After=network.target

[Service]
Type=forking
User=activemq
Group=activemq

ExecStart=/opt/apache-activemq/bin/activemq start
ExecStop=/opt/apache-activemq/bin/activemq stop

[Install]
WantedBy=multi-user.target

重新加载可用的Systemd服务单元文件列表。

sudo systemctl daemon-reload

将SELinux置于宽松模式。

sudo setenforce 0
sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

现在启动并启用该服务。

sudo systemctl enable apache-activemq.service
sudo systemctl start apache-activemq.service

确认服务状态:

$systemctl status  apache-activemq.service 
● apache-activemq.service - Apache ActiveMQ Messaging Server
   Loaded: loaded (/etc/systemd/system/apache-activemq.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2017-03-06 22:06:09 EAT; 5s ago
  Process: 4306 ExecStop=/opt/apache-activemq/bin/activemq stop (code=exited, status=1/FAILURE)
  Process: 4680 ExecStart=/opt/apache-activemq/bin/activemq start (code=exited, status=0/SUCCESS)
 Main PID: 4732 (java)
    Tasks: 14 (limit: 11512)
   Memory: 91.9M
   CGroup: /system.slice/apache-activemq.service
           └─4732 /usr/bin/java -Xms64M -Xmx1G -Djava.util.logging.config.file=logging.properties -Djava.security.auth.login.config=/opt/apache-activem>

Mar 06 22:06:09 cent8.novalocal systemd[1]: Starting Apache ActiveMQ Messaging Server...
Mar 06 22:06:09 cent8.novalocal activemq[4680]: INFO: Loading '/opt/apache-activemq//bin/env'
Mar 06 22:06:09 cent8.novalocal activemq[4680]: INFO: Using java '/usr/bin/java'
Mar 06 22:06:09 cent8.novalocal activemq[4680]: INFO: Starting - inspect logfiles specified in logging.properties and log4j.properties to get details
Mar 06 22:06:09 cent8.novalocal activemq[4680]: INFO: pidfile created : '/opt/apache-activemq//data/activemq.pid' (pid '4732')
Mar 06 22:06:09 cent8.novalocal systemd[1]: Started Apache ActiveMQ Messaging Server.

更改管理员用户密码

将默认的管理员用户密码更改为唯一的密码。

$sudo vi /opt/apache-activemq/conf/jetty-realm.properties

该文件中的用户定义采用以下形式:

username: password [,rolename ...]

香港专业教育学院更新我的如下。

admin: MyAdminPassw0rd, admin
user: MyUserPassw0rd, user

进行更改后,重新启动apache-activemq服务。

sudo systemctl restart apache-activemq

验证身份验证是否有效,将" password"替换为密码:

curl --head --user admin:MyAdminPassw0rd http://localhost:8161/admin/xml/topics.jsp

输出:

HTTP/1.1 200 OK
Date: Fri, 06 Mar 2017 19:41:51 GMT
X-FRAME-OPTIONS: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
Set-Cookie: JSESSIONID=node0yqbxi60ra47n1fysq6zgx2lte0.node0; Path=/admin; HttpOnly
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Content-Type: text/xml;charset=iso-8859-1
Content-Length: 187
Server: Jetty(9.4.22.v20191022)

应该显示200 OK消息。 401未经授权的消息表示用户名或者密码不正确。

访问Apache ActiveMQ Web控制台

Web控制台将在端口8161上运行。打开服务器IP地址/主机名以访问ActiveMQ Web控制台。

http://192.168.122.48:8161/admin/

使用创建的用户名和密码进行身份验证。

我们应该看到ActiveMQ Web界面。