前言
RocketMQ
是一款開源的分佈式消息系統,基於高可用分佈式集羣技術,提供低延時的、高可靠的消息發佈與訂閱服務
環境
win10 + Spring Cloud Hoxton.SR9 + Spring Cloud Alibaba 2.2.6.RELEASE + RocketMQ 4.7.0
搭建搭建
關於MQ
與RocketMQ
的環境搭建查看之前的文章
具體實現
編寫生產者(內容中心)
代碼
pom.xml
<!-- rocketmq -->
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
application.yml
rocketmq:
name-server: 127.0.0.1:9876
producer:
group: producer-group
TestRocketController.java
import lombok.RequiredArgsConstructor;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/rocketmq")
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class TestRocketController {
private final RocketMQTemplate rocketMQTemplate;
@PostMapping("test")
public String test() {
rocketMQTemplate.convertAndSend(
"test-msg",
"突然活得潦草了。。。");
return "success";
}
}
測試
- 訪問接口
RocketMQ
控制檯查看http://localhost:8088/#/message
- 消息詳情
編寫消費者(用戶中心)
代碼
pom.xml
<!-- rocketmq -->
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
application.yml
rocketmq:
name-server: 127.0.0.1:9876
TestRocketConsumer.java
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Service;
@Service
@Slf4j
@RocketMQMessageListener(consumerGroup = "consumer-group", topic = "test-msg")
public class TestRocketConsumer implements RocketMQListener<String> {
@Override
public void onMessage(String str) {
// TODO 業務處理
log.info("監聽到主題爲'test-msg'的消息:" + str);
}
}
測試
- 重啓應用
- 控制檯消費記錄
項目源碼
GitHub
: https://github.com/Maggieq8324/coisini-cloud-alibabaGitee
: https://gitee.com/maggieq8324/coisini-cloud-alibaba