RabbitMQ - 基礎

1、基礎知識spring

  •   大多應用中,可經過消息服務中間件來提高系統異步通訊、擴展解耦能力
  •   消息服務中兩個重要概念: 消息代理(message broker)和目的地(destination) 當消息發送者發送消息之後,將由消息代理接管,消息代理保證消息傳遞到指定目的地。
  •   消息隊列主要有兩種形式的目的地 隊列(queue):
    1.  點對點消息通訊(point-to-point) 主題(topic):
    2.  發佈(publish)/訂閱(subscribe)消息通訊

      

 

  

 

  點對點式: 消息發送者發送消息,消息代理將其放入一個隊列中,消息接收者從隊列中獲取消息內容,消息讀取後被移出隊列 消息只有惟一的發送者和接受者,但並非說只能有一個接收者服務器

  發佈訂閱式: 發送者(發佈者)發送消息到主題,多個接收者(訂閱者)監聽(訂閱)這個主題,那麼就會在消息到達時同時收到消息網絡

  JMS(Java Message Service)JAVA消息服務: 基於JVM消息代理的規範。ActiveMQ、HornetMQ是JMS實現異步

  AMQP(Advanced Message Queuing Protocol) 高級消息隊列協議,也是一個消息代理的規範,兼容JMS RabbitMQ是AMQP的實現  ui

  

 

 

  Spring支持加密

    spring-jms提供了對JMS的支持spa

    spring-rabbit提供了對AMQP的支持操作系統

    須要ConnectionFactory的實現來鏈接消息代理代理

    提供JmsTemplate、RabbitTemplate來發送消息中間件

    @JmsListener(JMS)、@RabbitListener(AMQP)註解在方法上監聽消息代理髮布的消息

    @EnableJms、@EnableRabbit開啓支持

  Spring Boot自動配置

    JmsAutoConfiguration

    RabbitAutoConfiguration

 

  RabbitMQ簡介:

    RabbitMQ是一個由erlang開發的AMQP(Advanved Message Queue Protocol)的開源實現。

    核心概念 Message

    消息,消息是不具名的,它由消息頭和消息體組成。消息體是不透明的,而消息頭則由一系列的可選屬性組成,這些屬性包括routing-key(路由鍵)、priority(相對於其餘消息的優先權)、delivery-mode(指出該消息可能須要持久性存儲)等。

    Publisher

    消息的生產者,也是一個向交換器發佈消息的客戶端應用程序。

    Exchange

    交換器,用來接收生產者發送的消息並將這些消息路由給服務器中的隊列。 Exchange有4種類型:direct(默認),fanout, topic, 和headers,不一樣類型的Exchange轉發消息的策略有所區別

    Queue

    消息隊列,用來保存消息直到發送給消費者。它是消息的容器,也是消息的終點。一個消息可投入一個或多個隊列。消息一直在隊列裏面,等待消費者鏈接到這個隊列將其取走。

    Binding

    綁定,用於消息隊列和交換器之間的關聯。一個綁定就是基於路由鍵將交換器和消息隊列鏈接起來的路由規則,因此能夠將交換器理解成一個由綁定構成的路由表。 Exchange 和Queue的綁定能夠是多對多的關係。

    Connection

    網絡鏈接,好比一個TCP鏈接。

    Channel

    信道,多路複用鏈接中的一條獨立的雙向數據流通道。信道是創建在真實的TCP鏈接內的虛擬鏈接,AMQP 命令都是經過信道發出去的,無論是發佈消息、訂閱隊列仍是接收消息,這些動做都是經過信道完成。由於對於操做系統來講創建和銷燬 TCP 都是很是昂貴的開銷,因此引入了信道的概念,以複用一條 TCP 鏈接。   

    Consumer

    消息的消費者,表示一個從消息隊列中取得消息的客戶端應用程序。

    Virtual Host

    虛擬主機,表示一批交換器、消息隊列和相關對象。虛擬主機是共享相同的身份認證和加密環境的獨立服務器域。每一個 vhost 本質上就是一個 mini 版的 RabbitMQ 服務器,擁有本身的隊列、交換器、綁定和權限機制。vhost 是 AMQP 概念的基礎,必須在鏈接時指定,RabbitMQ 默認的 vhost 是 / 。

    Broker

    表示消息隊列服務器實體

    

相關文章
相關標籤/搜索