首先检查linux服务器的java以及javac是否正常,可以通过java -version,javac -version或者which java ,which javac查看
若发现java -version但没有javac -version,则
yum -y install java-1.8.0-openjdk-devel
上官网(https://activemq.apache.org/components/artemis/download)下载ActiveMQ Artemis 2.19.1 (Feb 1st, 2022),apache-artemis-2.19.1-bin.zip(注意:若下载“ActiveMQ Artemis 2.21.0 (Mar 28th, 2022)”版编译时可能报啥错has been compiled by a more recent version of the Java Runtime (class file version 56.0),即意思就是编译时使用了56.0版本,执行时的JDK/JRE使用了52.0版本,可以升级jdk,或者编译artemis时使用当前的jdk版本来编辑,具体未试过不知可行性。所以我们直接使用apache-artemis-2.19.1-bin.zip版)
把zip包上传到服务器上,然后解压
tar zxvf apache-artemis-2.19.1-bin.tar.gz
进入目录
cd apache-artemis-2.19.1/
设置环境变量
vim /etc/profile
在文件最后面添加以下两行(注意:export PATH=$PATH:后面的“$PATH:”不能删掉,会有一堆报错例如vim,source命令全部失效,谨慎)
export ARTEMIS_HOME=/root/apache-artemis-2.19.1 export PATH=$PATH:$ARTEMIS_HOME/bin
刷新一下环境变量
source /etc/profile
创建数据目录,我们可以在当前目录下使用当前目录的bin目录下的artemis命令,或者直接使用全局环境变量设置好的artemis名利创建数据目录
第1种方法,在当前安装目录下
./bin/./artemis create jms-data
第2种方法,在任意目录下
artemis create jms-data
执行以上命令后,会创建账户(我们输入admin)和密码(我们输入**********),以及设置是否允许匿名登录(我们输入N,不允许匿名登录)
完成以上后,会在当前目录生成jms-data目录,可以使用以下两种方法运行artemis
第1种方法:进入jms-data目录的bin目录
cd jms-data/bin
执行run启动artemis(ctrl+c后会终止进程)
./artemis run
第2种方法:进入jms-data目录的bin目录
cd jms-data/bin
执行start启动artemis(ctrl+c后不会终止进程)
./artemis-service start
此时,要想进入后台,默认只允许http://localhost:8161/console方式进入,若想开发所有ip均可访问后台,则需要
1、开放阿里云运行所有ip访问8161端口
2、关闭服务器防火墙
systemctl start firewalld
或者开启服务器的8161防火墙访问
firewall-cmd --zone=public --add-port=8161/tcp --permanent
记得开启服务器的某个防火墙后重启一下
firewall-cmd --reload
3、修改apache-artemis-2.19.1/jms-data/etc目录下的bootstrap.xml文件,把bind地址由默认的http://localhost:8161修改为0.0.0.0,如下
<web bind="http://0.0.0.0:8161" path="web">
4、修改apache-artemis-2.19.1/jms-data/etc目录下的jolokia-access.xml文件,把cors下默认的<allow-origin>*://localhost*</allow-origin>修改为*,如下
<allow-origin>*</allow-origin>
完成以上配置后重新启动artemis,通过访问后台地址:“服务器ip地址:8161/console”即可通过账户admin,密码 *******登录后台
要使用java程序来发送jms到activeMq artemis,要注意:
1、开放阿里云运行所有ip访问61616端口
2、关闭服务器防火墙
systemctl start firewalld
或者开启服务器的61616防火墙访问
firewall-cmd --zone=public --add-port=61616/tcp --permanent
记得开启服务器的某个防火墙后重启一下
firewall-cmd --reload
3、程序中jms连接地址使用tcp://并不是使用http://
jms.uri=tcp://**.**.**.**:61616 jms.username=admin jms.password=********