欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2022年03月03日 08:57:23   作者:SKevin  
這篇文章主要介紹了Spring?Boot+RabbitMQ?通過(guò)fanout模式實(shí)現(xiàn)消息接收(支持消費(fèi)者多實(shí)例部署),本文通過(guò)案例場(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)容過(guò)于基礎(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ā)送消息而無(wú)接收,請(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 通過(guò)fanout模式實(shí)現(xiàn)消息接收(支持消費(fèi)者多實(shí)例部署)的文章就介紹到這了,更多相關(guān)Spring Boot RabbitMQ實(shí)現(xiàn)消息接收內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringSecurity實(shí)現(xiàn)動(dòng)態(tài)url攔截(基于rbac模型)

    SpringSecurity實(shí)現(xiàn)動(dòng)態(tài)url攔截(基于rbac模型)

    本文主要介紹了SpringSecurity動(dòng)態(tài)url攔截,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Spark?SQL配置及使用教程

    Spark?SQL配置及使用教程

    SparkSQL是spark的一個(gè)模塊,主入口是SparkSession,將SQL查詢與Spark程序無(wú)縫混合,這篇文章主要介紹了Spark?SQL配置及使用,需要的朋友可以參考下
    2021-12-12
  • SpringBoot切面攔截@PathVariable參數(shù)及拋出異常的全局處理方式

    SpringBoot切面攔截@PathVariable參數(shù)及拋出異常的全局處理方式

    這篇文章主要介紹了SpringBoot切面攔截@PathVariable參數(shù)及拋出異常的全局處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • maven引入第三方j(luò)ar包配置詳解

    maven引入第三方j(luò)ar包配置詳解

    這篇文章主要為大家介紹了maven引入第三方j(luò)ar包配置詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • 詳解idea maven項(xiàng)目如何使用lib下得jar包

    詳解idea maven項(xiàng)目如何使用lib下得jar包

    這篇文章主要介紹了詳解idea maven項(xiàng)目如何使用lib下得jar包,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • SpringBoot使用Flyway進(jìn)行數(shù)據(jù)庫(kù)遷移的實(shí)現(xiàn)示例

    SpringBoot使用Flyway進(jìn)行數(shù)據(jù)庫(kù)遷移的實(shí)現(xiàn)示例

    Flyway是一個(gè)數(shù)據(jù)庫(kù)遷移工具,它提供遷移歷史和回滾的功能,本文主要介紹了如何使用Flyway來(lái)管理Spring Boot應(yīng)用程序中的SQL數(shù)據(jù)庫(kù)架構(gòu),感興趣的可以了解一下
    2023-08-08
  • Java數(shù)字和字符串拼接原理及案例

    Java數(shù)字和字符串拼接原理及案例

    這篇文章主要介紹了Java數(shù)字和字符串拼接原理及案例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Spring Cloud實(shí)戰(zhàn)技巧之使用隨機(jī)端口

    Spring Cloud實(shí)戰(zhàn)技巧之使用隨機(jī)端口

    這篇文章主要給大家介紹了關(guān)于Spring Cloud實(shí)戰(zhàn)技巧之使用隨機(jī)端口的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編一起來(lái)學(xué)習(xí)學(xué)習(xí)吧。
    2017-06-06
  • java基于jdbc連接mysql數(shù)據(jù)庫(kù)功能實(shí)例詳解

    java基于jdbc連接mysql數(shù)據(jù)庫(kù)功能實(shí)例詳解

    這篇文章主要介紹了java基于jdbc連接mysql數(shù)據(jù)庫(kù)功能,結(jié)合實(shí)例形式詳細(xì)分析了jdbc連接mysql數(shù)據(jù)庫(kù)的原理、步驟、實(shí)現(xiàn)方法及相關(guān)操作技巧,需要的朋友可以參考下
    2017-10-10
  • 關(guān)于shiro中部分SpringCache失效問(wèn)題的解決方法

    關(guān)于shiro中部分SpringCache失效問(wèn)題的解決方法

    這篇文章主要給大家介紹了關(guān)于shiro中部分SpringCache失效問(wèn)題的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07

最新評(píng)論