<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 一、概述 RocketMQ是一個純Java、分布式、隊列模型的開源**消息中間件**,前身是MetaQ,是阿里參考Kafka特點研發的一個隊列模型的消息中間件,后開源給Apache基金會成為了apache的頂級開源項目,具有高性能、高可靠、高實時、分布式特點; 簡單來說,RocketMQ由 **Producer**、**Broker**、**Consumer**三部分組成,其中Producer 負責生產消息,Consumer 負責消費消息,Broker 負責存儲消息; ![](https://img.kancloud.cn/01/4d/014dcf2c5f052c74c43dabd9255cb50c_1342x541.png) ### **價值** 消息中間件的諸多優勢,使得在如今的微服務架構中能夠作為一種中間件,提供許多重要的功能以解決微服務架構中的諸多痛點; 比如:消息隊列可以將同步的系統調用轉為異步的消息投遞,一定程度上解除業務子系統間的耦合; ### **功能特點:** * 支持發布/訂閱(Pub/Sub)和點對點(P2P)消息模型; * 在一個隊列中可靠的先進先出(FIFO)和嚴格的順序傳遞; * 支持拉(pull)和推(push)兩種消息模式; * 單一隊列百萬消息的堆積能力; * 支持多種消息協議,如 JMS、MQTT 等; * 分布式高可用的部署架構,滿足至少一次消息傳遞語義; * 提供 docker 鏡像用于隔離測試和云集群部署; * 提供配置、指標和監控等功能豐富的 Dashboard; ### **核心模塊:** 四大核心組成部分:**NameServer**、**Broker**、**Producer**以及**Consumer**四大部分; * rocketmq-namesrv:NameServer,類似于Zookeeper,這里保存著消息TopicName,隊列等運行時的元信息; * rocketmq-broker:接受生產者發來的消息并存儲(通過調用rocketmq-store),消費者從這里取得消息; * rocketmq-client:提供發送、接受消息的客戶端API; * rocketmq-common:通用的一些類,方法,數據結構等; * rocketmq-remoting:基于Netty4的client/server + fastjson序列化 + 自定義二進制協議; * rocketmq-store:消息、索引存儲等; * rocketmq-filtersrv:消息過濾器Server,需要注意的是,要實現這種過濾,需要上傳代碼到MQ!(一般而言,我們利用Tag足以滿足大部分的過濾需求,如果更靈活更復雜的過濾需求,可以考慮filtersrv組件); * rocketmq-tools:命令行工具; ## 二、核心術語 ### **Producer** 負責生產消息,一般由業務系統負責生產消息。一個消息生產者會把業務應用系統里產生的消息發送到broker服務器。RocketMQ提供多種發送方式,同步發送、異步發送、順序發送、單向發送。同步和異步方式均需要Broker返回確認信息,單向發送不需要; ### **Consumer** 負責消費消息,一般是后臺系統負責異步消費。一個消息消費者會從Broker服務器拉取消息、并將其提供給應用程序。從用戶應用的角度而言提供了兩種消費形式:拉取式消費、推動式消費; ### **Broker** 消息中轉角色,負責存儲消息、轉發消息。代理服務器在RocketMQ系統中負責接收從生產者發送來的消息并存儲、同時為消費者的拉取請求作準備。代理服務器也存儲消息相關的元數據,包括消費者組、消費進度偏移和主題和隊列消息等; ### **Name Server** 名稱服務充當路由消息的提供者。生產者或消費者能夠通過名字服務查找各主題相應的Broker IP列表; ### **Message** 消息系統所傳輸信息的物理載體,生產和消費數據的最小單位,每條消息必須屬于一個主題。RocketMQ中每個消息擁有唯一的Message ID,且可以攜帶具有業務標識的Key。系統提供了通過Message ID和Key查詢消息的功能; ### **Topic** 表示一類消息的集合,每個主題包含若干條消息,每條消息只能屬于一個主題,是RocketMQ進行消息訂閱的基本單位; ### **Tag** 為消息設置的標志,Topic的子單位,用于同一主題下區分不同類型的消息。來自同一業務單元的消息,可以根據不同業務目的在同一主題下設置不同標簽。標簽能夠有效地保持代碼的清晰度和連貫性,并優化RocketMQ提供的查詢系統。消費者可以根據Tag實現對不同子主題的不同消費邏輯,實現更好的擴展性; ## 三、官方最佳實踐 官方給出了最佳實踐的文檔,可以參考,實際業務中,盡量遵循; [rocketmq/best_practice.md at master · apache/rocketmq (github.com)](https://github.com/apache/rocketmq/blob/master/docs/cn/best_practice.md)
                  <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>

                              哎呀哎呀视频在线观看