最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Springboot詳解RocketMQ實(shí)現(xiàn)消息發(fā)送與接收流程

 更新時(shí)間:2022年06月23日 08:59:16   作者:12程序猿  
這篇文章主要介紹了SpringBoot整合RocketMQ實(shí)現(xiàn)消息發(fā)送和接收功能,我們使用主流的SpringBoot框架整合RocketMQ來講解,使用方便快捷,本文分步驟給大家介紹的非常詳細(xì),需要的朋友可以參考下

springboot+rockermq 實(shí)現(xiàn)簡單的消息發(fā)送與接收

普通消息的發(fā)送方式有3種:單向發(fā)送、同步發(fā)送和異步發(fā)送。

下面來介紹下 springboot+rockermq 整合實(shí)現(xiàn) 普通消息的發(fā)送與接收

  • 創(chuàng)建Springboot項(xiàng)目,添加rockermq 依賴
<!--rocketMq依賴-->
<dependency>
    <groupId>org.apache.rocketmq</groupId>
    <artifactId>rocketmq-spring-boot-starter</artifactId>
    <version>2.2.1</version>
</dependency>
  • 配置rocketmq

# 端口
server:
  port: 8083

# 配置 rocketmq
rocketmq:
  name-server: 127.0.0.1:9876
  #生產(chǎn)者
  producer:
    #生產(chǎn)者組名,規(guī)定在一個(gè)應(yīng)用里面必須唯一
    group: group1
    #消息發(fā)送的超時(shí)時(shí)間 默認(rèn)3000ms
    send-message-timeout: 3000
    #消息達(dá)到4096字節(jié)的時(shí)候,消息就會(huì)被壓縮。默認(rèn) 4096
    compress-message-body-threshold: 4096
    #最大的消息限制,默認(rèn)為128K
    max-message-size: 4194304
    #同步消息發(fā)送失敗重試次數(shù)
    retry-times-when-send-failed: 3
    #在內(nèi)部發(fā)送失敗時(shí)是否重試其他代理,這個(gè)參數(shù)在有多個(gè)broker時(shí)才生效
    retry-next-server: true
    #異步消息發(fā)送失敗重試的次數(shù)
    retry-times-when-send-async-failed: 3

  • 新建一個(gè) controller 來做消息發(fā)送:
package com.example.springbootrocketdemo.controller;
import org.apache.rocketmq.client.producer.SendCallback;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * 普通信息的三種方式:同步、異步、單向
 * @author qzz
 */
@RestController
public class RocketMQCOntroller {
    @Autowired
    private RocketMQTemplate rocketMQTemplate;
    /**
     * 發(fā)送普通消息
     * convertAndSend(String destination, Object payload) 發(fā)送字符串比較方便
     */
    @RequestMapping("/send")
    public void send(){
        rocketMQTemplate.convertAndSend("test-topic","test-message");
    }
    /**
     * 發(fā)送同步消息
     */
    @RequestMapping("/testSyncSend")
    public void testSyncSend(){
        //參數(shù)一:topic   如果想添加tag,可以使用"topic:tag"的寫法
        //參數(shù)二:消息內(nèi)容
        SendResult sendResult = rocketMQTemplate.syncSend("test-topic","同步消息測試");
        System.out.println(sendResult);
    }
    /**
     * 發(fā)送異步消息
     */
    @RequestMapping("/testASyncSend")
    public void testASyncSend(){
        //參數(shù)一:topic   如果想添加tag,可以使用"topic:tag"的寫法
        //參數(shù)二:消息內(nèi)容
        //參數(shù)三:回調(diào)
        rocketMQTemplate.asyncSend("test-topic", "異步消息測試", new SendCallback() {
            @Override
            public void onSuccess(SendResult sendResult) {
                System.out.println(sendResult);
            }
            @Override
            public void onException(Throwable throwable) {
                System.out.println("消息發(fā)送異常");
                throwable.printStackTrace();
            }
        });
    }
    /**
     * 發(fā)送單向消息
     */
    @RequestMapping("/testOneWay")
    public void testOneWay(){
        //參數(shù)一:topic   如果想添加tag,可以使用"topic:tag"的寫法
        //參數(shù)二:消息內(nèi)容
        rocketMQTemplate.sendOneWay("test-topic","單向消息測試");
    }
}

SpringBoot給我們提供了RocketMQTemplate模板類,我們利用這個(gè)類可以以多種形式發(fā)送消息。

發(fā)送方法指定Topic主題test-topic。

  • 新建消息消費(fèi)者監(jiān)聽RocketMQConsumerListener,監(jiān)聽消息,消費(fèi)消息
package com.example.springbootrocketdemo.config;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Service;
/**
 * 消費(fèi)消息
 * 配置RocketMQ監(jiān)聽
 * @author qzz
 */
@Service
@RocketMQMessageListener(consumerGroup = "test",topic = "test-topic")
public class RocketMQConsumerListener implements RocketMQListener<String> {
    @Override
    public void onMessage(String s) {
        System.out.println("消費(fèi)消息:"+s);
    }
}

消費(fèi)者類要實(shí)現(xiàn)RocketMQListener接口,以及動(dòng)態(tài)指定消息類型String。

類上要加上@RocketMQMessageListener注解,指定topic主題test-topic,以及消費(fèi)者組test

簡單的消息發(fā)送與接收搭建完畢!

  • 啟動(dòng)服務(wù),測試消息消費(fèi)

測試同步消息:

測試異步消息:

測試單向消息:

測試OK,成功消費(fèi)!

到此這篇關(guān)于Springboot詳解RocketMQ實(shí)現(xiàn)消息發(fā)送與接收流程的文章就介紹到這了,更多相關(guān)Springboot 消息發(fā)送與接收內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java?集合框架底層數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)深度解析(示例詳解)

    Java?集合框架底層數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)深度解析(示例詳解)

    Java 集合框架(Java Collections Framework, JCF)是支撐高效數(shù)據(jù)處理的核心組件,其底層數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)直接影響性能與適用場景,這篇文章主要介紹Java集合框架底層數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)深度解析,需要的朋友可以參考下
    2025-06-06
  • IDEA利用jclasslib 修改class文件的實(shí)現(xiàn)

    IDEA利用jclasslib 修改class文件的實(shí)現(xiàn)

    這篇文章主要介紹了IDEA利用jclasslib 修改class文件的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Java Long類型對(duì)比分析

    Java Long類型對(duì)比分析

    這篇文章主要介紹了Java Long類型對(duì)比分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java?Post請(qǐng)求發(fā)送form-data表單參數(shù)詳細(xì)示例代碼

    Java?Post請(qǐng)求發(fā)送form-data表單參數(shù)詳細(xì)示例代碼

    POST請(qǐng)求是一種常見的網(wǎng)絡(luò)通信操作,用于向服務(wù)器發(fā)送數(shù)據(jù),這種請(qǐng)求通常用于上傳文件或者提交包含大量數(shù)據(jù)的表單,這篇文章主要介紹了Java?Post請(qǐng)求發(fā)送form-data表單參數(shù)的相關(guān)資料,需要的朋友可以參考下
    2025-07-07
  • Springboot集成JWT實(shí)現(xiàn)登錄注冊(cè)的示例代碼

    Springboot集成JWT實(shí)現(xiàn)登錄注冊(cè)的示例代碼

    本文主要介紹了Springboot集成JWT實(shí)現(xiàn)登錄注冊(cè)的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • Java8 CompletableFuture異步編程解讀

    Java8 CompletableFuture異步編程解讀

    Java8引入的CompletableFuture是Java異步編程的重要進(jìn)展,提供了基于未來結(jié)果的異步編程模型,它適用于異步計(jì)算、多個(gè)并行任務(wù)組合、異步回調(diào)、超時(shí)控制、錯(cuò)誤處理和多任務(wù)組合與合成等場景
    2024-12-12
  • jmeter基本使用小結(jié)

    jmeter基本使用小結(jié)

    jmeter是apache公司基于java開發(fā)的一款開源壓力測試工具,體積小,功能全,使用方便,是一個(gè)比較輕量級(jí)的測試工具,使用起來非常簡單。本文就簡單的介紹一下如何使用,感興趣的
    2021-11-11
  • SpringBoot整合RabbitMQ之路由模式的實(shí)現(xiàn)

    SpringBoot整合RabbitMQ之路由模式的實(shí)現(xiàn)

    本文主要介紹了SpringBoot整合RabbitMQ之路由模式的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-06-06
  • Mybatis-plus獲取雪花算法生成的ID并返回生成ID

    Mybatis-plus獲取雪花算法生成的ID并返回生成ID

    本文主要介紹了Mybatis-plus獲取雪花算法生成的ID并返回生成ID,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09
  • Java安全 ysoserial CommonsCollections2示例分析

    Java安全 ysoserial CommonsCollections2示例分析

    這篇文章主要為大家介紹了Java安全 ysoserial CommonsCollections2示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11

最新評(píng)論

怀远县| 锦屏县| 博客| 金门县| 新绛县| 舟曲县| 仙游县| 鄂托克旗| 阿图什市| 新巴尔虎右旗| 宁都县| 醴陵市| 镇赉县| 济南市| 阿坝县| 恩施市| 平度市| 南溪县| 郯城县| 平舆县| 南康市| 鄱阳县| 苍南县| 涿鹿县| 奉新县| 大埔区| 固阳县| 博客| 望江县| 山东省| 吴桥县| 哈密市| 肇州县| 通江县| 宁强县| 德格县| 克什克腾旗| 长顺县| 交口县| 定州市| 资阳市|