CentOS7 安装Apache ActiveMQ Artemis

下载

    官网:https://activemq.apache.org/components/artemis/

    我选择的版本:ActiveMQ Artemis 2.9.0 (June 6, 2019)

    http://mirror.bit.edu.cn/apache/activemq/activemq-artemis/2.9.0/apache-artemis-2.9.0-bin.tar.gz

安装

    #解压到/opt目录下

    sudo tar -zxvf apache-artemis-2.9.0-bin.tar.gz -C /opt/

    Artemis 的目录结构

     |___ bin                        #运行ActiveMQ Artemis所需的二进制文件和脚本
     |
     |___ examples                   #所有的示例都放在这个目录下
     |      |___ common
     |      |___ features
     |      |___ perf
     |      |___ protocols
     |
     |___ lib                        #运行ActiveMQ Artemis所需的jar和库
     |      |___ client
     |
     |___ schema                     #存放用于验证ActiveMQ Artemis的XML配置文件
     |
     |___ web                        #代理运行时加载web上下文的文件夹
            |___ api                 #API文档
            |___ hacking-guide
            |___ migration-guide
            |___ user-manual         #用户手册

 

创建Broker实例

Broker实例是包含与Broker进程关联的所有配置和运行时数据(如日志和数据文件)的目录。

官网文档建议我们不要在${ARTEMIS_HOME}下创建实例目录。鼓励这种分离,以便在ActiveMQ Artemis的下一个版本发布时更容易升级。

    cd /var/lib/

    /opt/apache-artemis-2.9.0/bin/artemis create mybroker

然后控制台会让我们填写默认用户名、密码、是否允许匿名登录

我们会看到,在/var/lib目录下,为我们生成了mybroker目录,按照官方文档,我们看一下实例下的几个主要目录

     ├── bin            #保存与此实例关联的执行脚本
     ├── data           #保存用于存储持久消息的数据文件
     ├── etc            #保存实例配置文件
     ├── lib
     ├── lock 
     ├── log            #保存旋转日志文件
     └── tmp            #保存可以在代理运行期间安全删除的临时文件

 

启动和停止实例

我们看到在控制台已经提示我们
    您现在可以通过执行以下命令启动代理:
    "/var/lib/mybroker/bin/artemis" run
    或者您可以使用以下命令在后台运行代理:
    "/var/lib/mybroker/bin/artemis-service" start

我们使用后台运行执行下

    /var/lib/mybroker/bin/artemis-service start

看到控制台输出,启动成功

    Starting artemis-service
    artemis-service is now running (64858)

   

访问控制台

根据官方文档所述,我们可以通过使用浏览器访问URL http://localhost:8161/console 来使用控制台.

这里埋了个坑,我使用http://<服务器IP>:8161/console的URL地址确无法访问... 看了一下官方文档,原来是这样:

    大概的意思是说:Jolokia JMX-HTTP桥接是通过代理配置目录中的策略文件“etc/Jolokia -access.xml”来保护的。该文件的内容应该按照Jolokia安全指南中的描述进行修改。默认情况下,控制台被锁定为“localhost”,在通过网络公开控制台web端点时,要特别注意“CORS”限制。

    好的,我们来netstat看一下是不是这个问题造成的

    netstat -anpt |grep 64858

    控制台如下,原来如此,找到原因了!

    1)修改 etc/Jolokia -access.xml,添加一条allow-origin的访问权限设置

    参考Jolokia 文档 https://jolokia.org/reference/html/security.html#d0e2905

<restrict>

    <cors>
        <!-- Allow cross origin access from localhost ... -->
        <allow-origin>*://localhost*</allow-origin>
        <allow-origin>*://192.168.20.65*</allow-origin>

        <!-- Options from this point on are auto-generated by Create.java from the Artemis CLI -->
        <!-- Check for the proper origin on the server side, too -->
        <strict-checking/>
    </cors>

</restrict>

    2)修改etc/bootstrap.xm,localhost改为服务器的ip

<broker xmlns="http://activemq.org/schema">

   <jaas-security domain="activemq"/>

   <!-- artemis.URI.instance is parsed from artemis.instance by the CLI startup.
        This is to avoid situations where you could have spaces or special characters on this URI -->
   <server configuration="file:/var/lib/mybroker/etc//broker.xml"/>

   <!-- The web server is only bound to localhost by default -->
   <web bind="http://192.168.20.65:8161" path="web">
       <app url="activemq-branding" war="activemq-branding.war"/>
       <app url="artemis-plugin" war="artemis-plugin.war"/>
       <app url="console" war="console.war"/>
   </web>

</broker>

    3)重启一下broker实例

    /var/lib/mybroker/bin/artemis-service restart

    我们再来netstat看一下

    然后我们在浏览器中尝试下,发现成功了,好开心呀,有木有!

猜你喜欢

转载自blog.csdn.net/bluerebel/article/details/99594985
今日推荐