日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

RabbitMQ的四種交換機詳解

來源: 責編: 時間:2023-11-06 08:53:38 266觀看
導讀 交換機主要是接收消息并且轉發到綁定的隊列,交換機不存儲消息,在啟用ack模式后,交換機找不到隊列會返回錯誤。交換機有四種類型:Direct, topic, Headers and Fanout。圖片一、topic exchange----(模糊匹配) 按規則

  交換機主要是接收消息并且轉發到綁定的隊列,交換機不存儲消息,在啟用ack模式后,交換機找不到隊列會返回錯誤。交換機有四種類型:Direct, topic, Headers and Fanout。bOZ28資訊網——每日最新資訊28at.com

圖片圖片bOZ28資訊網——每日最新資訊28at.com

一、topic exchange----(模糊匹配) 

    按規則轉發消息(最靈活),轉發消息主要是根據通配符。在這種交換機下,隊列和交換機的綁定會定義一種路由模式,那么,通配符就要在這種路由模式和路由鍵之間匹配后交換機才能轉發消息。bOZ28資訊網——每日最新資訊28at.com

    1、 路由鍵(routingKey):必須是字符,用句號.隔開:例如:"order.a";(一般有發布者定義);bOZ28資訊網——每日最新資訊28at.com

    2、路由模式:必須包含一個 星號(*),主要用于匹配路由鍵指定位置的一個單詞, #就表示相當于一個或者多個單詞。(例如:order.*.*.*….)(一般由接收者提供),但是也可通過rabbitmq客戶端配置。常用在隊列Queues定義中。bOZ28資訊網——每日最新資訊28at.com

    direct類型要求routingkey完全相等,但是topic exchange可以有通配符:“*”:表示匹配一個單詞, “#”:則表示匹配沒有或者多個單詞。優勢:可實現批量訂閱消費。(Routingkey與Queues之間支持模糊匹配)。bOZ28資訊網——每日最新資訊28at.com

圖片圖片bOZ28資訊網——每日最新資訊28at.com

案例:bOZ28資訊網——每日最新資訊28at.com

/**     * 功能描述:通過消費端注解綁定的方式發送Topic交換機中     * @MethodName: sendTopicMessageByZJ     * @MethodParam: [messageData]     * @Return: void     * @Author: yyalin     * @CreateDate: 2022/4/9 18:17     */    public void sendTopicMessageByZJ(String messageData){        CorrelationData correlationData = new CorrelationData("1");        rabbitTemplate.convertAndSend("topicExchange",                "china.car",messageData,correlationData);    }

bOZ28資訊網——每日最新資訊28at.com

二、direct exchange----默認的(全文匹配)

    direct 類型的行為是"先匹配, 再投送". 即:在綁定時設定一個 routingkey, 消息的routingkey 匹配時, 才會被交換器投送到綁定的隊列中。是RabbitMQ默認的交換機模式,也是最簡單的模式,根據key全文匹配去尋找隊列。(按照routingkey分發到指定隊列)bOZ28資訊網——每日最新資訊28at.com

    所有發送到direct exchange的消息被轉發到routingkey中指定到queue。bOZ28資訊網——每日最新資訊28at.com

注意:direct模式可使用rabbitmq自帶的exchange:AMQP default,所以不需將exchange進行任何綁定操作(binding),消息傳遞時,routingkey必須完全匹配才會被對列接收,否則該消息會被拋棄。(Routingkey與Queues之間必須全文匹配)。bOZ28資訊網——每日最新資訊28at.com

圖片圖片bOZ28資訊網——每日最新資訊28at.com

    在direct類型的exchange中,只有routingkey完全相同,exchange才會選擇對應的binging進行消息路由。bOZ28資訊網——每日最新資訊28at.com

案例:bOZ28資訊網——每日最新資訊28at.com

/**     * 功能描述:通過消費端注解綁定的方式發送Direct交換機中     * @MethodName: sendDirectMessageByZJ     * @MethodParam: [messageData]     * @Return: void     * @Author: yyalin     * @CreateDate: 2022/4/9 18:17     */    public void sendDirectMessageByZJ(String messageData){        CorrelationData correlationData = new CorrelationData("1");        rabbitTemplate.convertAndSend("directExchange",                "blue",messageData,correlationData);    }

bOZ28資訊網——每日最新資訊28at.com

三、headers Exchange----(自定義匹配規則)

    設置header attribute參數類型的交換機,相較于 direct 和 topic 固定地使用 routing_key , headers 則是一個自定義匹配規則的類型. 在隊列與交換器綁定時, 會設定一組鍵值對規則, 消息中也包括一組鍵值對( headers 屬性), 當這些鍵值對有一對, 或全部匹配時, 消息被投送到對應隊列.bOZ28資訊網——每日最新資訊28at.com

四、fanout Exchange----(消息廣播模式)

    轉發消息到所有綁定隊列,消息廣播的模式,不管路由鍵或者是路由模式,會把消息發給綁定給它的全部隊列,如果配置了routing_key會被忽略。(直接將消息路由到所有綁定的隊列中,無須對消息的routingkey進行匹配操作)。bOZ28資訊網——每日最新資訊28at.com

圖片圖片bOZ28資訊網——每日最新資訊28at.com

案例:bOZ28資訊網——每日最新資訊28at.com

/**     * 功能描述:發送FanoutMessage消息     * @MethodName: sendFanoutMessage     * @MethodParam: [messageData]     * @Return: void     * @Author: yyalin     * @CreateDate: 2022/4/9 17:46     */    public void sendFanoutMessage(String messageData){        CorrelationData correlationData = new CorrelationData("1");        rabbitTemplate.convertAndSend("fanoutExchange",                "",messageData,correlationData);    }

五、總結

     一般direct和topic用來具體的路由消費,若要用廣播的消息一般用fanout的exchange,header類型比較少。bOZ28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-17168-0.htmlRabbitMQ的四種交換機詳解

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: C++中線程編程的應用,注意點,源代碼解析

下一篇: 如何使用圖算法,幫助我們理解和處理復雜的關系型數據

標簽:
  • 熱門焦點
  • 影音體驗是真的強 簡單聊聊iQOO Pad

    大公司的好處就是產品線豐富,非常細分化的東西也能給你做出來,例如早先我們看到了新的vivo Pad2,之后我們又在iQOO Neo8 Pro的發布會上看到了iQOO的首款平板產品iQOO Pad。雖
  • 8月總票房已突破10億!《封神》第一:口碑已經成了

    8月5日消息,據燈塔專業版數據,截至8月5日9時35分,8月總票房(含預售)已突破10億。其中,《封神》以大比分的優勢領先。根據官方消息,目前該片總票房已經超過14.
  • Raft算法:保障分布式系統共識的穩健之道

    1. 什么是Raft算法?Raft 是英文”Reliable、Replicated、Redundant、And Fault-Tolerant”(“可靠、可復制、可冗余、可容錯”)的首字母縮寫。Raft算法是一種用于在分布式系統
  • 三言兩語說透設計模式的藝術-簡單工廠模式

    一、寫在前面工廠模式是最常見的一種創建型設計模式,通常說的工廠模式指的是工廠方法模式,是使用頻率最高的工廠模式。簡單工廠模式又稱為靜態工廠方法模式,不屬于GoF 23種設計
  • 如何通過Python線程池實現異步編程?

    線程池的概念和基本原理線程池是一種并發處理機制,它可以在程序啟動時創建一組線程,并將它們置于等待任務的狀態。當任務到達時,線程池中的某個線程會被喚醒并執行任務,執行完任
  • Python異步IO編程的進程/線程通信實現

    這篇文章再講3種方式,同時講4中進程間通信的方式一、 Python 中線程間通信的實現方式共享變量共享變量是多個線程可以共同訪問的變量。在Python中,可以使用threading模塊中的L
  • 小米汽車電池信息疑似曝光:容量101kWh,支持800V高壓快充

    7月14日消息,今日一名博主在社交媒體發布了一張疑似小米汽車電池信息的照片,顯示該電池包正是寧德時代麒麟電池,容量為101kWh,電壓為726.7V,可以預測小
  • 余承東:AI大模型技術的發展將會帶來下一代智能終端操作系統的智慧體驗

    8月4日消息,2023年華為開發者大會(HDC.Together)今天正式開幕,華為發布HarmonyOS 4、全新升級的鴻蒙開發套件、HarmonyOS Next開發者預覽版本等一系列
  • 2納米決戰2025

    集微網報道 從三強爭霸到四雄逐鹿,2nm的廝殺聲已然隱約傳來。無論是老牌勁旅臺積電、三星,還是誓言重回先進制程領先地位的英特爾,甚至初成立不久的新
Top 主站蜘蛛池模板: 长治市| 蓝山县| 陈巴尔虎旗| 延庆县| 周宁县| 南宫市| 沛县| 沿河| 星座| 沭阳县| 西华县| 沁源县| 拉孜县| 铜陵市| 城市| 吉安市| 安塞县| 新营市| 崇明县| 朔州市| 宝应县| 昌图县| 龙川县| 普宁市| 大庆市| 蓬莱市| 信阳市| 浦江县| 沙坪坝区| 密山市| 张家界市| 保靖县| 平阳县| 三原县| 奎屯市| 平泉县| 阿合奇县| 镇安县| 什邡市| 阿城市| 仁怀市|