环境:腾讯云centos7
注意:activemq安装插件,可能会报错。本人是主机名的问题,所以修改了主机名。 vim /etc/hosts vim /etc/hostname 修改这两个文件,并重启主机,然后再运行activemq,没有问题了。
1、下载安装包
https://activemq.apache.org/components/classic/download/
2、解压安装包
tar -xzvf apache-activemq-5.15.9-bin.tar.gz
3、安装
mkdir /usr/java/ mv apache-activemq-5.15.9 /usr/java/activemq5.15 cd /usr/java/activemq5.15
4、运行mq
activemq start
stop
status
5、验证是否启动成功
ss -tnalp 查看端口,如果有61616,则运行成功。
6、进入管理界面查看
http://ip:8161 初始密码:admin/admin
7、设置管理界面密码
a) 在 mq安装目录/conf/jetty.xml中,添加权限控制。 <bean id="securityConstraint" class="org.eclipse.jetty.util.security.Constraint"> <property name="name" value="BASIC" /> <property name="roles" value="admin" /> <property name="authenticate" value="<span style="color:#ff0000;">true</span>" /> </bean> b)在 mq安装目录/conf/jetty-realm.properties中,添加用户 admin:password,admin
完毕!
#########springboot实践##########
1、pom.xml添加依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-activemq</artifactId> </dependency>
2、yml文件添加服务ip
#默认使用配置 #activemq spring: activemq: broker-url: tcp://132.232.44.82:61616
3、ActiveProducer.java
package com.cn.commodity.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jms.core.JmsMessagingTemplate; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.HashMap; import java.util.Map; @RestController public class ActiveProducer { //注入jsmtemplate @Autowired private JmsMessagingTemplate jmsMessagingTemplate; @RequestMapping("/sendMsg") public String sendMsg(String msg) { jmsMessagingTemplate.convertAndSend("my_msg", msg); System.out.println("msg发送成功:"+msg); return "正发送邮件以及短信验证码,请注意查收"; } @RequestMapping("/sendMap") public String sendMap() { Map map = new HashMap(); map.put("mobile", "13888888888"); map.put("content", "王总喜提兰博基尼"); jmsMessagingTemplate.convertAndSend("my_map", map); System.out.println("map发送成功: "+map); return "map发送成功"; } }
4、ActiveConsumer.java
package com.cn.commodity.controller; import org.springframework.jms.annotation.JmsListener; import org.springframework.stereotype.Component; import java.util.Map; @Component public class ActiveConsumer { @JmsListener(destination = "my_msg") public void readMsg(String text) { if(text!=null){ System.out.println("接收到消息:" + text); } } @JmsListener(destination = "my_map") public void readMap(Map map) { System.out.println(map); } }
启动测试 ,完毕!