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

Spring?Boot+RabbitMQ?通過fanout模式實(shí)現(xiàn)消息接收功能(支持消費(fèi)者多實(shí)例部署)

 更新時(shí)間:2022年03月03日 08:57:23   作者:SKevin  
這篇文章主要介紹了Spring?Boot+RabbitMQ?通過fanout模式實(shí)現(xiàn)消息接收(支持消費(fèi)者多實(shí)例部署),本文通過案例場(chǎng)景分析給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

  本文章適用的場(chǎng)景:同一條消息可以被多個(gè)消費(fèi)者同時(shí)消費(fèi)。注意:當(dāng)消費(fèi)者多實(shí)例部署時(shí),會(huì)輪詢消費(fèi)消息。網(wǎng)上有大量的的案例展示:P生產(chǎn)一條消息,消費(fèi)者服務(wù)C中建立Q1和Q2兩個(gè)隊(duì)列共同消費(fèi)。但極少的材料展示:P生產(chǎn)一條消息后M1,消費(fèi)者C1和C2可以同時(shí)消費(fèi)M1,如下圖所示。案例基于Spring Boot以及RabbitMQ的“fanout”類型exchange。已經(jīng)實(shí)測(cè)可放心使用。

 

1、引入基本依賴,項(xiàng)目不同請(qǐng)您按自己的情況引入合適的依賴

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

2、rabbitmq密碼、用戶名等配置

  內(nèi)容過于基礎(chǔ),請(qǐng)網(wǎng)絡(luò)上自行搜索相關(guān)內(nèi)容。

3、Exchange配置

@Bean
    public FanoutExchange myFanoutExchange() {
  //“my.fanout”僅用于演示,請(qǐng)按自己的項(xiàng)目情況選擇合適的、有意義的命名
        return new FanoutExchange("my.fanout", true, false);
    }
    @Bean
    public Queue anonymousQueue() {
        //注意:必須使用匿名隊(duì)列才能達(dá)到本文目標(biāo),此匿名隊(duì)列實(shí)例的名稱在消費(fèi)端會(huì)被使用
        return new AnonymousQueue();
    public Binding bindAnonymousQueue() {
        return BindingBuilder.bind(anonymousQueue()).to(myFanoutExchange());

4、發(fā)送端代碼

//構(gòu)建回調(diào)返回的數(shù)據(jù)
        CorrelationData correlationData = new CorrelationData(UUIDUtils.getUUID());

        Message msg = MessageBuilder.withBody(message.getBytes())
                .setContentType(MessageProperties.CONTENT_TYPE_TEXT_PLAIN)
                .setCorrelationId(correlationData.getId())
                .build();
        try {
            rabbitTemplate.convertAndSend(exchangeName, null, msg, correlationData);
        } catch (Exception e) {
            logger.error(e.getMessage(), e);
        }

注意:“fanout"模式直接將消息發(fā)送到“exchange”,routing key應(yīng)為null或“”,如果您的代碼只需要發(fā)送消息而無接收,請(qǐng)忽略第3小節(jié)“Exchange配置”中所示代碼

5、消費(fèi)者代碼

@Service
public class MyListener {
    @RabbitListener(queues = "#{anonymousQueue.name}")
    public void receive(String message, Message message1, Channel channel) {
        try {
            //your code
        } catch (Exception e) {
            logger.error(e.getMessage(), e);
        } finally {
            long deliverTag = message1.getMessageProperties().getDeliveryTag();
            channel.basicAck(deliverTag, false);
        }
    }
}

  代碼“@RabbitListener…”中的“#{anonymousQueue.name}”中的“anonymousQueue”對(duì)應(yīng)第3小節(jié)“Exchange配置”中所聲明的匿名隊(duì)列實(shí)例。

到此這篇關(guān)于Spring Boot+RabbitMQ 通過fanout模式實(shí)現(xiàn)消息接收(支持消費(fèi)者多實(shí)例部署)的文章就介紹到這了,更多相關(guān)Spring Boot RabbitMQ實(shí)現(xiàn)消息接收內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot實(shí)現(xiàn)EMQ設(shè)備的上下線告警

    SpringBoot實(shí)現(xiàn)EMQ設(shè)備的上下線告警

    EMQX?的上下線系統(tǒng)消息通知功能在客戶端連接成功或者客戶端斷開連接,需要實(shí)現(xiàn)設(shè)備的上下線狀態(tài)監(jiān)控,所以本文給大家介紹了如何通過SpringBoot實(shí)現(xiàn)EMQ設(shè)備的上下線告警,文中有詳細(xì)的代碼示例,需要的朋友可以參考下
    2023-10-10
  • 淺談@Aspect@Order各個(gè)通知的執(zhí)行順序

    淺談@Aspect@Order各個(gè)通知的執(zhí)行順序

    這篇文章主要介紹了@Aspect@Order各個(gè)通知的執(zhí)行順序,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • 解決redisTemplate向redis中插入String類型數(shù)據(jù)時(shí)出現(xiàn)亂碼問題

    解決redisTemplate向redis中插入String類型數(shù)據(jù)時(shí)出現(xiàn)亂碼問題

    這篇文章主要介紹了解決redisTemplate向redis中插入String類型數(shù)據(jù)時(shí)出現(xiàn)亂碼問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • SpringBoot+Redission實(shí)現(xiàn)排行榜功能的示例代碼

    SpringBoot+Redission實(shí)現(xiàn)排行榜功能的示例代碼

    這篇文章主要介紹了基于SpringBoot+Redission實(shí)現(xiàn)排行榜功能,實(shí)現(xiàn)一個(gè)排行榜,要求按照分?jǐn)?shù)和達(dá)成這個(gè)分?jǐn)?shù)的時(shí)間排序,即相同分?jǐn)?shù)下,時(shí)間早的在上面,文中通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2024-05-05
  • 學(xué)習(xí)java多線程

    學(xué)習(xí)java多線程

    本文運(yùn)用了大量的代碼講解了java多線程,它可以提高程序并行執(zhí)行的速度,更快的響應(yīng)程序。感興趣的小伙伴一起來看看吧
    2021-08-08
  • 一文搞懂Spring中@Autowired和@Resource的區(qū)別

    一文搞懂Spring中@Autowired和@Resource的區(qū)別

    @Autowired?和?@Resource?都是?Spring/Spring?Boot?項(xiàng)目中,用來進(jìn)行依賴注入的注解。它們都提供了將依賴對(duì)象注入到當(dāng)前對(duì)象的功能,但二者卻有眾多不同,并且這也是常見的面試題之一,所以我們今天就來盤它
    2022-08-08
  • SpringSecurity框架下實(shí)現(xiàn)CSRF跨站攻擊防御的方法

    SpringSecurity框架下實(shí)現(xiàn)CSRF跨站攻擊防御的方法

    CSRF是一種網(wǎng)絡(luò)攻擊方式,也可以說是一種安全漏洞,這種安全漏洞在web開發(fā)中廣泛存在。這篇文章主要介紹了SpringSecurity框架下實(shí)現(xiàn)CSRF跨站攻擊防御,需要的朋友可以參考下
    2019-12-12
  • SpringBoot集成Graphql Query實(shí)戰(zhàn)示例

    SpringBoot集成Graphql Query實(shí)戰(zhàn)示例

    這篇文章主要為大家介紹了SpringBoot集成Graphql Query實(shí)戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • Mybatis-Plus或PageHelper多表分頁查詢總條數(shù)不對(duì)問題的解決方法

    Mybatis-Plus或PageHelper多表分頁查詢總條數(shù)不對(duì)問題的解決方法

    PageHelper 這個(gè)插件用了很多次了,今天使用的時(shí)候才遇到一個(gè)問題,這篇文章主要給大家介紹了關(guān)于Mybatis-Plus或PageHelper多表分頁查詢總條數(shù)不對(duì)問題的解決方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • Java程序測(cè)試上傳Maven工程代碼示例解析

    Java程序測(cè)試上傳Maven工程代碼示例解析

    這篇文章主要介紹了Java程序測(cè)試上傳Maven工程代碼示例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08

最新評(píng)論

巴青县| 临沧市| 突泉县| 湘阴县| 科技| 中宁县| 衢州市| 威海市| 玉门市| 永胜县| 东源县| 甘洛县| 石柱| 沁源县| 桦川县| 湾仔区| 丰原市| 遂宁市| 岗巴县| 潼关县| 曲松县| 扶风县| 安吉县| 法库县| 温宿县| 双柏县| 谢通门县| 天门市| 金乡县| 胶州市| 怀集县| 惠安县| 昌图县| 乐亭县| 曲松县| 全椒县| 肃宁县| 宜良县| 南阳市| 手机| 桐乡市|