天天看點

SpringCloudAlibaba - 整合 RocketMQ 實作消息生産與消費

目錄

  • ​前言​
  • ​​環境​​
  • ​​搭建搭建​​
  • ​具體實作​
  • ​編寫生産者(内容中心)​
  • ​​代碼​​
  • ​​測試​​
  • ​編寫消費者(使用者中心)​
  • ​​項目源碼​​

前言

​RocketMQ​

​是一款開源的分布式消息系統,基于高可用分布式叢集技術,提供低延時的、高可靠的消息釋出與訂閱服務

環境

​win10 + Spring Cloud Hoxton.SR9 + Spring Cloud Alibaba 2.2.6.RELEASE + RocketMQ 4.7.0​

搭建搭建

具體實作

編寫生産者(内容中心)

代碼

  • ​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";
    }

}
      

測試

  • 通路接口
SpringCloudAlibaba - 整合 RocketMQ 實作消息生産與消費
  • ​RocketMQ​

    ​控制台檢視​

    ​http://localhost:8088/#/message​

SpringCloudAlibaba - 整合 RocketMQ 實作消息生産與消費
  • 消息詳情
SpringCloudAlibaba - 整合 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
      
  • ​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);
    }
}
      

  • 重新開機應用
SpringCloudAlibaba - 整合 RocketMQ 實作消息生産與消費
  • 控制台消費記錄
SpringCloudAlibaba - 整合 RocketMQ 實作消息生産與消費

項目源碼

  • ​GitHub​

    ​: ​​https://github.com/Maggieq8324/coisini-cloud-alibaba​​
  • ​Gitee​

    ​: ​​https://gitee.com/maggieq8324/coisini-cloud-alibaba​​
SpringCloudAlibaba - 整合 RocketMQ 實作消息生産與消費

作者:Maggieq8324

本文版權歸作者所有,歡迎轉載,轉載時保留原作者和文章位址即可。