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

RabbitMQ排他性隊(duì)列Exclusive Queue詳解

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

RabbitMQ排他性隊(duì)列Exclusive Queue

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

 

該隊(duì)列的特點(diǎn)是:

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

對于第一點(diǎn),首先是強(qiáng)調(diào)首次聲明,因?yàn)榱硗庖粋€連接無法聲明一個同樣的排他性隊(duì)列;其次是只區(qū)別連接(Connection)而不是通道(Channel),從同一個連接創(chuàng)建的不同的通道可以同時訪問某一個排他性的隊(duì)列。

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

Connection conn = factory.newConnection();    

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

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

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

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

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

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

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

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

相關(guān)文章

  • Java將RTF轉(zhuǎn)換為PDF格式的實(shí)現(xiàn)

    Java將RTF轉(zhuǎn)換為PDF格式的實(shí)現(xiàn)

    本文主要介紹了Java將RTF轉(zhuǎn)換為PDF格式的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Mybatis-Plus自動填充更新操作相關(guān)字段的實(shí)現(xiàn)

    Mybatis-Plus自動填充更新操作相關(guān)字段的實(shí)現(xiàn)

    數(shù)據(jù)庫表中應(yīng)該都要有create_time、update_time字段;那么在開發(fā)中,對于這些共有字段的處理應(yīng)該要進(jìn)行統(tǒng)一,這樣就可以簡化我們的開發(fā)過程。那么本文就對Mybatis-Plus中的字段自動填充進(jìn)行記錄
    2021-11-11
  • java后端返回數(shù)據(jù)給前端時去除值為空或NULL的屬性、忽略某些屬性代碼示例

    java后端返回數(shù)據(jù)給前端時去除值為空或NULL的屬性、忽略某些屬性代碼示例

    在Java開發(fā)中我們處理JSON數(shù)據(jù)時經(jīng)常會遇到空值(null)的情況,這篇文章主要給大家介紹了關(guān)于java后端返回數(shù)據(jù)給前端時去除值為空或NULL的屬性、忽略某些屬性的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-07-07
  • 如何在Java中獲取當(dāng)前年份(實(shí)例代碼)

    如何在Java中獲取當(dāng)前年份(實(shí)例代碼)

    在Java語言中獲取當(dāng)前年份有幾種方法:使用java.util包下的Calendar類,使用java.time包下的LocalDate類或者使用java.text包下的SimpleDateFormat類,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2023-11-11
  • springboot接口加簽驗(yàn)簽常見的幾大問題及解決過程

    springboot接口加簽驗(yàn)簽常見的幾大問題及解決過程

    在SpringBoot框架中通過自定義注解實(shí)現(xiàn)加簽驗(yàn)簽功能是一個非常實(shí)用的技術(shù),本文主要介紹了使用SpringBoot進(jìn)行加簽驗(yàn)簽時可能遇到的幾個問題,包括請求流重復(fù)讀取問題、控制器中文件參數(shù)讀取為空問題、FormData表單提交MD5加密值不一致問題
    2024-11-11
  • java編程簡單獲取圖片像素的方法

    java編程簡單獲取圖片像素的方法

    這篇文章主要介紹了java編程簡單獲取圖片像素的方法,涉及Java針對圖片的讀取與屬性獲取技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-11-11
  • java中表示一個文件的File類型詳解

    java中表示一個文件的File類型詳解

    Java提供File類,讓我們對文件進(jìn)行操作,下面這篇文章主要給大家介紹了關(guān)于java中表示一個文件的File類型的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • 這么優(yōu)雅的Java ORM沒見過吧!

    這么優(yōu)雅的Java ORM沒見過吧!

    這篇文章主要介紹了Java ORM的相關(guān)資料,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2021-01-01
  • Java實(shí)現(xiàn)讀取文件夾下(包括子目錄)所有文件的文件名

    Java實(shí)現(xiàn)讀取文件夾下(包括子目錄)所有文件的文件名

    這篇文章主要介紹了Java實(shí)現(xiàn)讀取文件夾下(包括子目錄)所有文件的文件名,本文把代碼組織成了一個模塊,可以很方便的使用,需要的朋友可以參考下
    2015-06-06
  • 解決出現(xiàn) java.lang.ExceptionInInitializerError錯誤問題

    解決出現(xiàn) java.lang.ExceptionInInitializerError錯誤問題

    這篇文章主要介紹了解決出現(xiàn) java.lang.ExceptionInInitializerError錯誤問題的相關(guān)資料,需要的朋友可以參考下
    2017-01-01

最新評論