rabbitMQ相關問題

1.什麼是rabbitMQ數據庫

    採用AMQP高級消息隊列協議的一種消息隊列技術,最大的特色就是消費並不須要確保提供方存在,實現了服務之間的高度解耦合;安全

2.爲何要使用rabbitMQ併發

    在分佈式系統下具有異步,削峯,負載均衡等一系列高級功能;負載均衡

    擁有持久化的機制,進程消息,隊列中的信息也能夠保存下來;異步

    實現消費者和生產者之間的解耦;分佈式

    對於高併發場景下,利用消息隊列可使得同步訪問變爲串行訪問達到必定量的限流,利於數據庫的操做;高併發

    可使用消息隊列達到異步下單的效果,排隊中,後臺進行邏輯下單;rabbitmq

3.使用rabbitmq的場景隊列

    服務間異步通訊;進程

    順序消費;

    定時任務;

    請求削峯;

4.如何確保消息正確的發送至rabbitMQ?如何確保消息接收方消費了消息?

    發送方確認模式

        將信道設值成confirm模式(發送方確認模式),則全部在信道上發佈的消息都會被指派一個惟一的ID。一旦消息被投遞到目的隊列後,或者消息被寫入磁盤後(可持久化消息),信道會發送一個確認給生產者(包含消息惟一ID)。若是rabbitMQ發生內部錯誤從而致使消息丟失,會發送一條nack(notacknowledged,未確認)消息。發送方確認模式是異步的,生產者應用程序在等待確認的同時,能夠繼續發送消息。當確認消息到達生產者應用程序,生產者應用程序的回調方法就會被觸發來處理確認消息;

    接收方確認機制

        消費者接收每一條消息後都必須進行確認(消息接收和消息確認是兩個不一樣操做)。只有消費者確認了消息,rabbitMQ才能安全的把消息從隊列中刪除,這裏並無用到超時機制,rabbitMQ僅經過consumer的鏈接中斷來確認是否須要從新發送消息。也就是說,只要鏈接不中斷,rabbitMQ給了consumer足夠長的時間來處理消息。保證數據的最終一致性;

相關文章
相關標籤/搜索