SpringCloudAlibaba - 整合 RocketMQ 實現消息生產與消費

前言

RocketMQ是一款開源的分佈式消息系統,基於高可用分佈式集羣技術,提供低延時的、高可靠的消息發佈與訂閱服務


環境

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


搭建搭建

關於MQRocketMQ的環境搭建查看之前的文章


具體實現

編寫生產者(內容中心)

代碼

  • 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);
    }
}

測試

  • 重啓應用

在這裏插入圖片描述

  • 控制檯消費記錄

在這裏插入圖片描述


項目源碼


- End -
白嫖有風險
點贊加收藏
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章