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

Rabbitmq中的channel接口常用方法詳解

 更新時間:2023年09月01日 08:45:14   作者:輕塵×  
這篇文章主要介紹了Rabbitmq中的channel接口常用方法詳解,為了確保消息一定被消費者處理,rabbitMQ提供了消息確認功能,就是在消費者處理完任務之后,就給服務器一個回饋,服務器就會將該消息刪除,需要的朋友可以參考下

 channel接口常用方法

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

方法作用:

聲明一個隊列

參數(shù):queue

含義:隊列名稱

參數(shù):durable

含義:是否持久化,如果設置為true,服務器重啟了隊列仍然存在

參數(shù):exclusive

含義:是否為獨享隊列(排他性隊列),只有自己可見的隊列,即不允許其它用戶訪問

如果exclusive聲明為true,則該隊列的特點是:

1、只對首次聲明它的連接(Connection)可見

2、會在其連接斷開的時候自動刪除。

參數(shù):autoDelete

含義:當沒有任何消費者使用時,自動刪除該隊列

參數(shù):arguments

含義:其他參數(shù) api解釋

這里寫圖片描述

void basicQos(int prefetchCount) throws IOException;

解釋: 方法作用: 一次獲取多少個消息

參數(shù):prefetchCount 含義:會告訴RabbitMQ不要同時給一個消費者推送多于prefetchCount個消息

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

解釋: 方法作用: 訂閱消息并消費

參數(shù):queue 含義:所訂閱的隊列

參數(shù):autoAck 含義:是否開啟自動應答,默認是開啟的,如果需要手動應答應該設置為false

注意:為了確保消息一定被消費者處理,rabbitMQ提供了消息確認功能,就是在消費者處理完任務之后,就給服務器一個回饋,服務器就會將該消息刪除,如果消費者超時不回饋,那么服務器將就將該消息重新發(fā)送給其他消費者,當autoAck設置為true時,只要消息被消費者處理,不管成功與否,服務器都會刪除該消息,而當autoAck設置為false時,只有消息被處理,且反饋結(jié)果后才會刪除。

參數(shù):callback 含義:接收到消息之后執(zhí)行的回調(diào)方法 看一下回調(diào)方法源碼:

 void handleDelivery(String consumerTag,
                        Envelope envelope,
                        AMQP.BasicProperties properties,
                        byte[] body)
        throws IOException;
}

額,看不太懂,反正就是接到消息之后你對消息的處理都要寫在這里!

之前我有一個RPC的例子,可以參考一下那里的這個方法如何實現(xiàn)的 //blog.csdn.net/leisure_life/article/details/78657935

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

解釋: 方法作用: 發(fā)布一個消息

參數(shù):exchange

含義:指定轉(zhuǎn)發(fā)器名稱—-ExchangeName,這里用空字符串,就表示消息會交給默認的Exchange

參數(shù):routingKey

含義:發(fā)布到哪個隊列

參數(shù):props

含義:和消息有關的其他配置參數(shù),路由報頭等

參數(shù):body

含義:消息體

源碼:

/**
     * Publish a message.
     *
     * Publishing to a non-existent exchange will result in a channel-level
     * protocol exception, which closes the channel.
     *
     * Invocations of <code>Channel#basicPublish</code> will eventually block if a
     * <a >resource-driven alarm</a> is in effect.
     *
     * @see com.rabbitmq.client.AMQP.Basic.Publish
     * @see <a >Resource-driven alarms</a>
     * @param exchange the exchange to publish the message to
     * @param routingKey the routing key
     * @param props other properties for the message - routing headers etc
     * @param body the message body
     * @throws java.io.IOException if an error is encountered
     */
    void basicPublish(String exchange, String routingKey, BasicProperties props, byte[] body) throws IOException;
 void basicAck(long deliveryTag, boolean multiple) throws IOException;

解釋: 方法作用: 另外需要在每次處理完成一個消息后,手動向服務端發(fā)送一次應答。

參數(shù):deliveryTag

含義:當前消息的類似編號的號碼,服務端為每一個消息生成的類似編號的號碼

參數(shù):multiple

含義:是否把小于當前deliveryTag的小于都應答了

注意:這個要在打開應答機制后使用,

 boolean ack = false ; //打開應答機制  
 channel.basicConsume(QUEUE_NAME, ack, consumer);  

當multiple設置為false時,只會為deliveryTag所對應的消息進行應答,服務端收到應答后將該消息刪除 源碼:

 /**
     * Acknowledge one or several received
     * messages. Supply the deliveryTag from the {@link com.rabbitmq.client.AMQP.Basic.GetOk}
     * or {@link com.rabbitmq.client.AMQP.Basic.Deliver} method
     * containing the received message being acknowledged.
     * @see com.rabbitmq.client.AMQP.Basic.Ack
     * @param deliveryTag the tag from the received {@link com.rabbitmq.client.AMQP.Basic.GetOk} or {@link com.rabbitmq.client.AMQP.Basic.Deliver}
     * @param multiple true to acknowledge all messages up to and
     * including the supplied delivery tag; false to acknowledge just
     * the supplied delivery tag.
     * @throws java.io.IOException if an error is encountered
     */
    void basicAck(long deliveryTag, boolean multiple) throws IOException;

到此這篇關于Rabbitmq中的channel接口常用方法詳解的文章就介紹到這了,更多相關channel接口常用方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 理解 Java 核心基礎精髓解析

    理解 Java 核心基礎精髓解析

    這篇文章主要介紹了解 Java 核心基礎精髓解析問題,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-03-03
  • java 中http請求為了防止亂碼解決方案

    java 中http請求為了防止亂碼解決方案

    這篇文章主要介紹了java 中http請求為了防止亂碼解決方案的相關資料,需要的朋友可以參考下
    2017-02-02
  • Scheduler定時任務調(diào)度詳解

    Scheduler定時任務調(diào)度詳解

    文章介紹了SysJobServiceImpl類中定時任務調(diào)度的相關方法,包括清除、檢查存在性、創(chuàng)建、暫停、恢復、刪除任務,以及觸發(fā)任務,并提到了JobKey、CronUtils、ScheduleUtils、SpringUtils等工具類的使用,適用于Spring管理環(huán)境
    2025-01-01
  • 解決新版idea新建文件沒有XML和Resource Bundle文件問題

    解決新版idea新建文件沒有XML和Resource Bundle文件問題

    這篇文章主要介紹了解決新版idea新建文件沒有XML和Resource Bundle文件問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • SpringMVC攔截器實現(xiàn)登錄認證

    SpringMVC攔截器實現(xiàn)登錄認證

    這篇文章主要介紹了SpringMVC攔截器實現(xiàn)登錄認證的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • SpringBoot中的多個事務管理詳解

    SpringBoot中的多個事務管理詳解

    這篇文章主要介紹了SpringBoot中的多個事務管理詳解,事務管理是一種組織和協(xié)調(diào)各種活動和資源的方法,以實現(xiàn)特定目標,它涉及規(guī)劃、執(zhí)行和監(jiān)控各種任務,以確保項目或組織的順利運行,需要的朋友可以參考下
    2023-10-10
  • 使用Java在線生成pdf文檔的代碼實現(xiàn)

    使用Java在線生成pdf文檔的代碼實現(xiàn)

    在實際的業(yè)務開發(fā)的時候,研發(fā)人員往往會碰到很多這樣的一些場景,需要提供相關的電子憑證信息給用戶,熟悉這塊業(yè)務的童鞋,一定特別清楚,目前最常用的解決方案通過一些技術手段生成對應的PDF文件,下面小編給大家詳細說說
    2025-04-04
  • springboot配置nacos的實現(xiàn)示例

    springboot配置nacos的實現(xiàn)示例

    本文將介紹如何在Spring?Boot中配置Nacos,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-09-09
  • Spring MVC參數(shù)校驗詳解(關于`@RequestBody`返回`400`)

    Spring MVC參數(shù)校驗詳解(關于`@RequestBody`返回`400`)

    這篇文章主要介紹了Spring MVC參數(shù)校驗的相關資料,主要是針對`@RequestBody`返回`400`的問題,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面跟著小編來一起學習學習吧。
    2017-08-08
  • 詳解Spring FactoryBean靈活創(chuàng)建復雜對象的秘密武器

    詳解Spring FactoryBean靈活創(chuàng)建復雜對象的秘密武器

    FactoryBean是Spring框架中用于創(chuàng)建復雜Bean的接口,通過編程方式控制Bean的創(chuàng)建過程,它允許開發(fā)者自定義Bean的創(chuàng)建邏輯,適用于集成第三方庫、延遲初始化、動態(tài)代理和統(tǒng)一管理資源等場景,本文介紹Spring FactoryBean創(chuàng)建復雜對象的相關操作,感興趣的朋友一起看看吧
    2025-02-02

最新評論

莆田市| 苍溪县| 讷河市| 登封市| 米泉市| 宁德市| 宁陵县| 鄱阳县| 三门峡市| 石景山区| 无锡市| 长泰县| 屏东县| 万荣县| 丹巴县| 汤原县| 彰化县| 临颍县| 门源| 杨浦区| 永昌县| 大方县| 宿迁市| 灵石县| 逊克县| 乾安县| 龙山县| 巴南区| 天台县| 洪洞县| 沭阳县| 长白| 泽州县| 尚志市| 龙岩市| 宜川县| 金沙县| 突泉县| 郯城县| 普洱| 乐陵市|