亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

RabbitMQ消息隊(duì)列中的Channel信道參數(shù)詳解

 更新時(shí)間:2023年08月28日 08:32:58   作者:辰小白  
這篇文章主要介紹了RabbitMQ消息隊(duì)列中的Channel信道參數(shù)詳解,信道是生產(chǎn)消費(fèi)者與rabbit通信的渠道,生產(chǎn)者publish或者消費(fèi)者消費(fèi)一個(gè)隊(duì)列都是需要通過信道來(lái)通信的,信道是建立在TCP上面的虛擬鏈接,需要的朋友可以參考下

RabbitMQ Channel 參數(shù)

1. channel.exchangeDeclare()

參數(shù):

exchange:交換機(jī)名稱

type:

fanout

fanout類型的Exchange路由規(guī)則非常簡(jiǎn)單,它會(huì)把所有發(fā)送到該Exchange的消息路由到所有與它綁定的Queue中

direct

direct類型的Exchange路由規(guī)則也很簡(jiǎn)單,它會(huì)把消息路由到那些binding key與routing key完全匹配的Queue中。

topic

規(guī)則就是模糊匹配,可以通過通配符滿足一部分規(guī)則就可以傳送。它的約定是: routing key為一個(gè)句點(diǎn)號(hào)“. ”分隔的字符串(我們將被句點(diǎn)號(hào)“. ”分隔開的每一段獨(dú)立的字符串稱為一個(gè)單詞),如“stock.usd.nyse”、“nyse.vmw”、“quick.orange.rabbit” binding key與routing key一樣也是句點(diǎn)號(hào)“. ”分隔的字符串。 binding key中可以存在兩種特殊字符“”與“#”,用于做模糊匹配,其中“”用于匹配一個(gè)單詞,“#”用于匹配多個(gè)單詞(可以是零個(gè))

durable:是否開啟持久化exchange

autoDelete: 當(dāng)已經(jīng)沒有消費(fèi)者時(shí),服務(wù)器是否可以刪除該exchange

arguments: 擴(kuò)展參數(shù)

Exchange.DeclareOk exchangeDeclare(String exchange, String type, boolean durable, boolean autoDelete,Map<String, Object> arguments) throws IOException;

2. channel.basicQos()

參數(shù):

prefetchSize:消息的大小

prefetchCount:會(huì)告訴RabbitMQ不要同時(shí)給一個(gè)消費(fèi)者推送多于N個(gè)消息,即一旦有N個(gè)消息還沒有ack,則該consumer將block掉,直到有消息ack

global:是否將上面設(shè)置應(yīng)用于channel,簡(jiǎn)單點(diǎn)說,就是上面限制是channel級(jí)別的還是consumer級(jí)別

備注:據(jù)說prefetchSize 和global這兩項(xiàng),rabbitmq沒有實(shí)現(xiàn),暫且不研究

void basicQos(int prefetchSize, int prefetchCount, boolean global) throws IOException;

3. channel.basicPublish()

參數(shù):

exchange:名稱 routingKey:路由鍵,#匹配0個(gè)或多個(gè)單詞,*匹配一個(gè)單詞,在topic exchange做消息轉(zhuǎn)發(fā)用

mandatory:為true時(shí)如果exchange根據(jù)自身類型和消息routeKey無(wú)法找到一個(gè)符合條件的queue,那么會(huì)調(diào)用 basic.return方法將消息返還給生產(chǎn)者。為false時(shí)出現(xiàn)上述情形broker會(huì)直接將消息扔掉   immediate:為true時(shí)如果exchange在將消息route到queue(s)時(shí)發(fā)現(xiàn)對(duì)應(yīng)的queue上沒有消費(fèi)者,那么這條消息不會(huì)放入隊(duì)列中。當(dāng)與消息routeKey關(guān)聯(lián)的所有queue(一個(gè)或多個(gè))都沒有消費(fèi)者時(shí),該消息會(huì)通過basic.return方法返還給生產(chǎn)者。

props:需要注意的是BasicProperties.deliveryMode,1:不持久化 2:持久化 這里指的是消息的持久化,配合channel(durable=true),queue(durable)可以實(shí)現(xiàn),即使服務(wù)器宕機(jī),消息仍然保留

body:要發(fā)送的信息

void basicPublish(String exchange, String routingKey, boolean mandatory, boolean immediate, BasicProperties props, byte[] body) throws IOException;

4. channel.basicAck()

參數(shù):

deliveryTag:該消息的index

multiple:是否批量處理.true:將一次性ack所有小于deliveryTag的消息

void basicAck(long deliveryTag, boolean multiple) throws IOException;

5. channel.basicNack()

參數(shù):

deliveryTag:該消息的index

multiple:是否批量.true:將一次性拒絕所有小于deliveryTag的消息

requeue:被拒絕的是否重新入隊(duì)列 注意:如果設(shè)置為true ,則會(huì)添加在隊(duì)列的末端

void basicNack(long deliveryTag, boolean multiple, boolean requeue) throws IOException;

6. channel.basicConsume()

參數(shù):

queue:隊(duì)列名稱

autoAck:是否自動(dòng)ack,如果不自動(dòng)ack,需要使用channel.ack、channel.nack、channel.basicReject 進(jìn)行消息應(yīng)答

callback:回調(diào)函數(shù)

String basicConsume(String queue, boolean autoAck, Consumer callback) throws IOException;

7. chanel.exchangeBind()

參數(shù):

生產(chǎn)者發(fā)送消息到source交換器中,source根據(jù)路由鍵找到與其匹配的另一個(gè)交換器destination,并把消息轉(zhuǎn)發(fā)到destination中,存儲(chǔ)在destination綁定的隊(duì)列queue中

Exchange.BindOk exchangeBind(String destination, String source, String routingKey) throws IOException;

8. channel.queueDeclare()

參數(shù):

queue: 隊(duì)列名稱

durable: 是否持久化, 隊(duì)列的聲明默認(rèn)是存放到內(nèi)存中的,如果rabbitmq重啟會(huì)丟失,如果想重啟之后還存在就要使隊(duì)列持久化,保存到Erlang自帶的Mnesia數(shù)據(jù)庫(kù)中,當(dāng)rabbitmq重啟之后會(huì)讀取該數(shù)據(jù)庫(kù)

exclusive:是否排外的,有兩個(gè)作用,一:當(dāng)連接關(guān)閉時(shí)connection.close()該隊(duì)列是否會(huì)自動(dòng)刪除;二:該隊(duì)列是否是私有的private,如果不是排外的,可以使用兩個(gè)消費(fèi)者都訪問同一個(gè)隊(duì)列,沒有任何問題,如果是排外的,會(huì)對(duì)當(dāng)前隊(duì)列加鎖,其他通道channel是不能訪問的,如果強(qiáng)制訪問會(huì)報(bào)異常,一般等于true的話用于一個(gè)隊(duì)列只能有一個(gè)消費(fèi)者來(lái)消費(fèi)的場(chǎng)景

autodelete:當(dāng)沒有任何消費(fèi)者使用時(shí),自動(dòng)刪除該隊(duì)列

arguments:擴(kuò)展參數(shù)。如:x-message-ttl

Queue.DeclareOk queueDeclare(String queue, boolean durable, boolean exclusive, boolean autoDelete,Map<String, Object> arguments) throws IOException;

9. channel.queueBind()

參數(shù):

queue 隊(duì)列名稱

exchange 交換機(jī)名稱

routingKey 路由key

AMQP.Queue.BindOk queueBind(String queue , String exchange , String routingKey ) throws IOException;

到此這篇關(guān)于RabbitMQ消息隊(duì)列中的Channel信道參數(shù)詳解的文章就介紹到這了,更多相關(guān)RabbitMQ的Channel參數(shù)信道內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mybatis插入后返回主鍵id的3種方式圖解

    mybatis插入后返回主鍵id的3種方式圖解

    這篇文章主要給大家介紹了關(guān)于mybatis插入后返回主鍵id的3種方式,很多時(shí)候,在向數(shù)據(jù)庫(kù)插入數(shù)據(jù)時(shí),需要保留插入數(shù)據(jù)的,以便進(jìn)行后續(xù)的操作或者將存入其他表作為外鍵,需要的朋友可以參考下
    2023-08-08
  • SpringBoot+Response如何統(tǒng)一返回result結(jié)果集

    SpringBoot+Response如何統(tǒng)一返回result結(jié)果集

    這篇文章主要介紹了SpringBoot+Response如何統(tǒng)一返回result結(jié)果集,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • java中數(shù)組list map三者之間的互轉(zhuǎn)介紹

    java中數(shù)組list map三者之間的互轉(zhuǎn)介紹

    java中 數(shù)組 list map之間的互轉(zhuǎn)一張圖清晰呈現(xiàn)并附有代碼,不懂的朋友可以參考下
    2013-10-10
  • 詳解Java引用類型的參數(shù)也是值傳遞

    詳解Java引用類型的參數(shù)也是值傳遞

    這篇文章主要介紹了Java引用類型的參數(shù)也是值傳遞,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 基于Hutool的圖片驗(yàn)證碼功能模塊實(shí)現(xiàn)

    基于Hutool的圖片驗(yàn)證碼功能模塊實(shí)現(xiàn)

    為了提高系統(tǒng)的安全性,防止接口被暴力刷新,驗(yàn)證碼是個(gè)好的手段,圖片驗(yàn)證碼沒有短信驗(yàn)證碼的費(fèi)用,其是個(gè)人開發(fā)者學(xué)習(xí)的重點(diǎn),這篇文章主要介紹了基于Hutool的圖片驗(yàn)證碼功能模塊實(shí)現(xiàn),需要的朋友可以參考下
    2022-10-10
  • Java中Arraylist的最大長(zhǎng)度

    Java中Arraylist的最大長(zhǎng)度

    這篇文章主要介紹了Java中Arraylist的最大長(zhǎng)度,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Java分布式鎖、分布式ID和分布式事務(wù)的實(shí)現(xiàn)方案

    Java分布式鎖、分布式ID和分布式事務(wù)的實(shí)現(xiàn)方案

    在分布式系統(tǒng)中,分布式鎖、分布式ID和分布式事務(wù)是常用的組件,用于解決并發(fā)控制、唯一標(biāo)識(shí)和數(shù)據(jù)一致性的問題,本文將介紹Java中常用的分布式鎖、分布式ID和分布式事務(wù)的實(shí)現(xiàn)方案,并通過具體的示例代碼演示它們的用法和應(yīng)用場(chǎng)景
    2023-06-06
  • java?kafka如何動(dòng)態(tài)設(shè)置用戶讀寫權(quán)限

    java?kafka如何動(dòng)態(tài)設(shè)置用戶讀寫權(quán)限

    這篇文章主要介紹了java?kafka如何動(dòng)態(tài)設(shè)置用戶讀寫權(quán)限問題,具有很好的參考家價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Java基礎(chǔ)教程之實(shí)現(xiàn)接口

    Java基礎(chǔ)教程之實(shí)現(xiàn)接口

    這篇文章主要介紹了Java基礎(chǔ)教程之實(shí)現(xiàn)接口,也可以說是實(shí)施接口,因?yàn)榻涌谥皇嵌x,最終要實(shí)現(xiàn)它,本文就專門講解接口的實(shí)現(xiàn),需要的朋友可以參考下
    2014-08-08
  • SpringCloud?Gateway中GatewayFilterChain執(zhí)行流程詳解

    SpringCloud?Gateway中GatewayFilterChain執(zhí)行流程詳解

    Spring?Cloud?Gateway旨在為微服務(wù)架構(gòu)提供一種簡(jiǎn)單有效的、統(tǒng)一的?API?路由管理方式。Spring?Cloud?Gateway?作為?Spring?Cloud?生態(tài)系中的網(wǎng)關(guān),它不僅提供統(tǒng)一的路由方式,并且基于?Filter?鏈的方式提供了網(wǎng)關(guān)基本的功能,例如:安全、監(jiān)控/埋點(diǎn)和限流等
    2022-10-10

最新評(píng)論