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

RabbitMQ排他性隊列Exclusive Queue詳解

 更新時間:2023年08月29日 11:10:24   作者:排骨蝦  
這篇文章主要介紹了RabbitMQ排他性隊列Exclusive Queue詳解,如果你想創(chuàng)建一個只有自己可見的隊列,即不允許其它用戶訪問,RabbitMQ允許你將一個Queue聲明成為排他性的Exclusive Queue,需要的朋友可以參考下

RabbitMQ排他性隊列Exclusive Queue

如果你想創(chuàng)建一個只有自己可見的隊列,即不允許其它用戶訪問,RabbitMQ允許你將一個Queue聲明成為排他性的(Exclusive Queue)。

 

該隊列的特點是:

  • 只對首次聲明它的連接(Connection)可見
  • 會在其連接斷開的時候自動刪除。

對于第一點,首先是強調(diào)首次聲明,因為另外一個連接無法聲明一個同樣的排他性隊列;其次是只區(qū)別連接(Connection)而不是通道(Channel),從同一個連接創(chuàng)建的不同的通道可以同時訪問某一個排他性的隊列。

這里說的連接是指一個AMQPConnection,以RabbitMQ的Java客戶端為例:

Connection conn = factory.newConnection();    

如果試圖在一個不同的連接中重新聲明或訪問(如publish,consume)該排他性隊列,會得到資源被鎖定的錯誤:

ESOURCE_LOCKED - cannot obtain exclusive access to locked queue 'UserLogin2'

 對于第二點,RabbitMQ會自動刪除這個隊列,而不管這個隊列是否被聲明成持久性的(Durable =true)。

也就是說即使客戶端程序?qū)⒁粋€排他性的隊列聲明成了Durable的,只要調(diào)用了連接的Close方法或者客戶端程序退出了,RabbitMQ都會刪除這個隊列。

注意這里是連接斷開的時候,而不是通道斷開。

這個其實前一點保持一致,只區(qū)別連接而非通道。

下面是一段示例代碼,演示了如何在同一連接的不同通道中訪問排他性隊列:

package rabbitmq.java.sample.exclusivequeue;
import java.io.IOException;
import com.rabbitmq.client.*;
import com.rabbitmq.client.AMQP.Queue.DeclareOk;
public class Producer {
    private final static String QUEUE_NAME = "UserLogin2";
    private final static String EXCHANGE_NAME = "user.login";
    /**
     * @param args
     */
    public static void main(String[] args) {
        ConnectionFactory factory=new ConnectionFactory();
        factory.setHost("CNCDS108");
        try {
            Connection conn = factory.newConnection();            
            Channel channel =conn.createChannel();
            DeclareOk declareOk = channel.queueDeclare(QUEUE_NAME, true, true, false, null);
            channel.basicPublish("", QUEUE_NAME, null, "Hello".getBytes());
            //close the channel, check if the queue is deleted
            System.out.println("Try to close channel");
            channel.close();
            System.out.println("Channel closed");
            System.out.println("Create a new channel");
            Channel channel2 =conn.createChannel();
            DeclareOk declareOk2 = channel2.queueDeclarePassive(QUEUE_NAME);
            //we can access the exclusive queue from another channel
            System.out.println(declareOk2.getQueue()); //will output "UserLogin2"
            channel2.basicPublish("", QUEUE_NAME, null, "Hello2".getBytes());
            System.out.println("Message published through the new channel");
//            System.out.println("Try to close Connection");
//            conn.close();
//            System.out.println("Connection closed");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

到此這篇關(guān)于RabbitMQ排他性隊列Exclusive Queue詳解的文章就介紹到這了,更多相關(guān)RabbitMQ排他性隊列內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Maven的幾個常用plugin

    Maven的幾個常用plugin

    本文主要介紹了Maven的幾個常用plugin。具有一定的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • Java線程通信詳解

    Java線程通信詳解

    本篇文章主要介紹了Java線程通信問題,線程通信用來保證線程協(xié)調(diào)運行,有需要的朋友可以了解一下。
    2016-10-10
  • JAVA獲取特定格式時間方式

    JAVA獲取特定格式時間方式

    我們有時要獲取時間,年月日時分秒周幾,有時要以特定的格式出現(xiàn),本文主要介紹了JAVA獲取特定格式時間方式,具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • Springboot之Jasypt配置文件加密/解密方式

    Springboot之Jasypt配置文件加密/解密方式

    Jasypt是一個用于Java項目加密敏感信息的庫,可以避免敏感信息泄露,文章介紹了如何在Spring Boot項目中整合Jasypt,并提供了一些防止密碼泄露的建議
    2026-03-03
  • 設(shè)計模式在Spring框架中的應用匯總

    設(shè)計模式在Spring框架中的應用匯總

    這篇文章主要介紹了設(shè)計模式在Spring框架中的應用匯總,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11
  • SpringBoot集成Spring Security的方法

    SpringBoot集成Spring Security的方法

    Spring security,是一個強大的和高度可定制的身份驗證和訪問控制框架。這篇文章主要介紹了SpringBoot集成Spring Security的操作方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • javaweb實現(xiàn)在線支付功能

    javaweb實現(xiàn)在線支付功能

    這篇文章主要為大家詳細介紹了javaweb實現(xiàn)在線支付功能的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • java socket大數(shù)據(jù)傳輸丟失問題及解決

    java socket大數(shù)據(jù)傳輸丟失問題及解決

    這篇文章主要介紹了java socket大數(shù)據(jù)傳輸丟失問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Java通過Process類Runtime.getRuntime().exec()執(zhí)行bat腳本程序

    Java通過Process類Runtime.getRuntime().exec()執(zhí)行bat腳本程序

    用Java編寫應用時,有時需要在程序中調(diào)用另一個現(xiàn)成的可執(zhí)行程序或系統(tǒng)命令,這篇文章主要給大家介紹了關(guān)于Java如何通過Process類Runtime.getRuntime().exec()執(zhí)行bat腳本程序的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • Nacos動態(tài)配置管理機制方式

    Nacos動態(tài)配置管理機制方式

    這篇文章主要介紹了Nacos動態(tài)配置管理機制方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07

最新評論

炉霍县| 山丹县| 繁昌县| 东莞市| 灵丘县| 社会| 皋兰县| 新和县| 苗栗市| 泰州市| 龙江县| 行唐县| 武宣县| 邛崃市| 安达市| 青海省| 敦煌市| 洛浦县| 普安县| 青铜峡市| 文安县| 本溪| 化州市| 沙河市| 绥化市| 上饶县| 兴安县| 高尔夫| 河曲县| 额济纳旗| 伊春市| 安国市| 定陶县| 沅陵县| 云和县| 罗江县| 福清市| 萨迦县| 浏阳市| 张家口市| 延庆县|