第一步导入依赖:
<!--Springboot 集成 RocketMQ依赖--> <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-spring-boot-starter</artifactId> <version>2.0.3</version> </dependency> <!--RocketMQ依赖 一般与上者二选一看环境--> <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-client</artifactId> <version>4.6.0</version> </dependency>
<!--对应的hutool工具包 -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.5.2</version>
</dependency>
第二步:注入MQ
// 定义消息体 HashMap<String, Object> map = new HashMap<>(); map.put("cname", username); map.put("ctype", 0); // 0代表登录失败 1 代表登录成功 map.put("ctime", new Date()); // 发送MQ消息 mqTemplate.convertAndSend("userlog", map);
#提供者 rocketmq.name-server=192.168.31.81:9876 rocketmq.producer.group=maike #消费者 rocketmq.name-server=192.168.31.80:9876
rocketmq.producer.group=maike2
server.port=8083 防止端口冲突
代码实现需要注意:
发消息:
rocketMQTemplate.convertAndSend("maike-sso-login", map);
//需要实现这个接口 topic与发送者一样
@RocketMQMessageListener(topic = "maike-sso-login", consumerGroup = "maike-login-info") public class UserLoginConsumer implements RocketMQListener<String> {
}
然后可以用hutool的工具包 JSONUtil.parseObj(msg)转成对象 按照对应类型去拿值,代码如下
public void onMessage(String msg) { //转json 拿到数据 JSONObject jsonObject = JSONUtil.parseObj(msg);
//传的时候传什么类型,就用什么类型取 Long userId = jsonObject.getLong("id"); Date loginDate = jsonObject.getDate("date"); String address = jsonObject.getStr("address"); String gender = jsonObject.getStr("gender");