本文將介紹SpringBoot集成RocketMQ基於Spring模型進行消息收發
1. RocketMQ安裝
參考 https://www.imooc.com/article/290089
2. RocketMQ控制檯安裝
參考 https://www.imooc.com/article/290092
3. 實戰
3.1 具體環境
SpringBoot版本2.2.1
RocketMQ版本4.5.1
3.2 新建一個名爲spring-boot-rocketmq項目
創建項目步驟省略
3.3 添加依賴
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
<version>2.0.3</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
<scope>provided</scope>
</dependency>
3.4 創建生產者
@Slf4j
@Service
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class MessageProducer {
private final RocketMQTemplate rocketMQTemplate;
public final static String TOPIC = "thyme";
public void sendMessage(String message) {
//發送消息
log.info("發送的信息爲:"+ message);
this.rocketMQTemplate.convertAndSend(TOPIC,message);
}
}
3.5 創建消費者
@Slf4j
@Service
@RocketMQMessageListener(topic = MessageProducer.TOPIC,consumerGroup = "consumer-group")
public class MessageConsumer implements RocketMQListener<String> {
@Override
public void onMessage(String s) {
log.info("接收到的信息爲:"+ s);
}
}
3.6 修改yml文件
server:
port: 8200
rocketmq:
name-server: 192.168.208.18:9876
producer:
group: producer-group
3.7 創建一個Controller
@RestController
@RequestMapping("/mq")
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class MqTestController {
private final MessageProducer messageProducer;
@RequestMapping("/sendMessage")
public String sendMessage(@RequestParam String message) {
messageProducer.sendMessage(message);
return "ok";
}
}
3.8 驗證
請求接口查看控制檯輸出
2019-12-03 21:35:56.023 INFO 14916 --- [nio-8200-exec-9] com.thyme.rocketmq.MessageProducer : 發送的信息爲:aaa
2019-12-03 21:35:56.091 INFO 14916 --- [MessageThread_7] com.thyme.rocketmq.MessageConsumer : 接收到的信息爲:aaa
3.9 源碼地址
https://gitee.com/thymeXd/spring-boot-rocketmq