日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RabbitMQ接触(二)

發布時間:2025/5/22 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RabbitMQ接触(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

上篇我們講了生產者如何創建一條message到rabbitmq-server之中,如果設置了durable,那么這條消息會持久化到磁盤,那么如果都把消息持久化到磁盤,那么消息越來越多的化,豈不是磁盤會爆滿,會導致系統崩掉??一般公司里面一些業務場景都是會設置消息持久化的(這里說的消息其實包含了exchange和隊列queue的).那么這些消息如何移除呢?

  • 當生產者設置了確認機制ack,生產通過exchange一條持久化消息時,消費者接收隊列中的消息并處理,這時候消費者必須要手動發送確認給rabbitm-server,這時候這條消息會自動在rabbit-server中刪除.但如果沒有確認,那么這條消息會一直留在隊列,也就是消費者會一直需要處理.因此要注意的一點是持久化屬性必須要和ack一起用.

  • 上面只是說了下公司應用rabbitmq的一些方式

    接下來還是主要講spring-amqp接收消息.

    CachingConnectionFactory factory=new CachingConnectionFactory();
    factory.setAddresses("localhost:5672");
    factory.setUsername("guest");
    factory.setPassword("guest");
    factory.setChannelCacheSize(1);
    template=new RabbitTemplate(factory);
    template.setMessageConverter(new Jackson2JsonMessageConverter());
    template.setQueue("qingting-queue");

    首先初始化鏈接也是需要如上配置的.

    配置之后,接收消息

    template.receiveAndConvert()

    因為我們設置了json轉換器,因此使用改方法接收并直接轉換為對象,當然我們也可以使用receive來接收.

    但是要注意的是這個接收必須手動調用方法才能接收到消息,因此,我們可以直接

    while (true){
    ? ?Object object=template.receiveAndConvert()
    }

    這時候我們就可以實時收到消息了.當然我們也可以使用線程去處理.



    轉載于:https://my.oschina.net/kittyMan/blog/386947

    總結

    以上是生活随笔為你收集整理的RabbitMQ接触(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。