第一步導入依賴:
<!--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");
