<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                >[info] 認識 RabbitMQ **故事原型:** 比如,小時候你爸爸要出差了,因為趕時間,家里的事情他沒做完,但他又沒能聯系上你。 于是他給你留下一張小紙條要你去做,內容是這樣的(其實這張小紙條就是一個消息隊列): ~~~ 收碗筷 ? ? 擦飯桌 ? ? 拖地 ~~~ 你根據小紙條上面的3條消息,依次做完了這3件事。 ***** **故事解讀:** 其實這張小紙條就是一個消息隊列中間件,我們可以當它是RabbitMQ, 而你爸爸就是消息的生產者,你是消息的消費者. 正如你爸爸(消息生產者)通過小紙條(消息隊列)讓你(消息消費者)完成了3件事。 程序A(消息生產者)也可以通過RabbitMQ(消息隊列) 讓其它程序(消息消費者)去做事。 沒錯,這就是我們要學的RabbitMQ,一款消息隊列中間件 ***** >[info] RabbitMQ的誕生和概念 **消息隊列的由來:** * 分布式系統已成為當前系統架構的主流, 而消息隊列在分布式系統中作為消息中間件,能為分布式系統中各個應用提供會話平臺, 比如:連接PHP和java(比如上面這個故事中的爸爸和兒子)。 * 其次,用多進程異步操作取代單進程同步操作, 從而滿足高性能系統架構需求。比如爸爸通過消息隊列讓兒子幫他洗碗,那么爸爸的辦事效率是不是高了很多? 同樣的,比如雙十一你到淘寶去下個單,可能感到不卡了,其實淘寶的下單進程已經把很多訂單相關邏輯交給其它進程去處理了,那么下單進程就會很快。 * 其次,可以防止服務器一下子做很多事情。消息隊列采用隊列的形式,消費者讀取隊列里面的消息的時候是一條一條讀取的,服務器不會超負載。比如上面故事中的兒子,不是 收碗筷 擦飯桌 拖地一起干,二是按著消息隊列的順序一件一件干,這樣兒子不會超負載,服務器也是如此。 原來消息隊列這么牛X,升職加薪的必修課,非常值得學習。 ***** **消息隊列的概念:** 從上面消息隊列的由來,我們可以進一步大致了解下消息隊列的概念: >[] 消息隊列中間件是分布式系統中重要的組件,主要解決應用解耦,異步消息,流量削鋒等問題,實現高性能,高可用,可伸縮和最終一致性架構。 ***** **消息隊列的種類:** >[] 目前使用較多的消息隊列有ActiveMQ,RabbitMQ,Redis的list和訂閱,ZeroMQ,Kafka,阿里的RocketMQ. 這里我們就不一一贅述,我們現在要學的是這其中應用較廣泛部署較容易的一種: RabbitMQ ***** >[info] RabbitMQ的AMQP協議 >[] RabbitMQ采用了AMQP協議,即Advanced Message Queuing Protocol,一個提供統一消息服務的應用層標準高級消息隊列協議,是應用層協議的一個開放標準,為面向消息的中間件設計。 ![](https://img.kancloud.cn/ae/c9/aec90372a66abaeffb57d9fee7c4f794_1404x661.png) * 生產者(Producer)(見上圖中的生產者):發送消息的應用。 * 消費者(Consumer)(見上圖中的消費者):接收消息的應用。 * 隊列(Queue)(見上圖中的queue):存儲消息的緩存,一個隊列queue存多條消息。 * 消息(Message):由生產者通過RabbitMQ發送給消費者的信息,消息存儲在消息隊列queue中。 * 連接(Connection):連接RabbitMQ和應用服務器的TCP連接(上圖中發送消息和接收消息都是必須先建立連接的)。 * 通道(Channel):連接里的一個虛擬通道。當你通過消息隊列發送或者接收消息時,這個操作都是通過通道進行的。 * 交換機(Exchange)(見上圖中的交換機):生產者發送消息是先發到交換機,再由交換機發送到隊列里面,并最終保存在隊列里面。就好比寄快遞,臺灣寄到長沙,可能要先寄到上海,那么上海就是這個交換機。 * 綁定(Binding):綁定是隊列和交換機的一個關聯連接。 * 路由鍵(Routing Key)(見上圖中的Routing Key):路由鍵是供交換機查看并根據鍵來決定如何分發消息到列隊的一個鍵。路由鍵可以說是消息的目的地址。 * 用戶(Users):在RabbitMQ里,是可以通過指定的用戶名和密碼來進行連接的。每個用戶可以分配不同的權限,例如讀權限,寫權限以及在實例里進行配置的權限。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看