<form id="dlljd"></form>
        <address id="dlljd"><address id="dlljd"><listing id="dlljd"></listing></address></address>

        <em id="dlljd"><form id="dlljd"></form></em>

          <address id="dlljd"></address>
            <noframes id="dlljd">

              聯系我們 - 廣告服務 - 聯系電話:
              您的當前位置: > 關注 > > 正文

              環球新動態:輕量級微服務計算框架Pulsar——下一代的消息系統

              來源:CSDN 時間:2023-01-10 15:19:53

              Pulsar 是下一代的新型消息系統,將批流處理集于一身,并且致力于克服一些現有的消息系統的弱點。Apache Pulsar 是由 Yahoo 開發并開源的企業級消息系統。由 Yahoo 在 2016年開源,并在 2018 年成為 Apache Software Foundation 頂級項目。為了有更好的運行效率、可擴展性和靈活性,Pulsar 從架構上就是分層架構。這樣的分層架構相比以往的單體架構更加靈活,可以根據需要來進行配置存儲層和處理層,更加容易維護和擴容。


              【資料圖】

              Pulsar Overview

              Apache Pulsar 是一個提供多租戶并且擁有高性能的消息系統,早期由 Yahoo 進行開發,后由 ASF 進行管理。 

              Pulsar 有以下特征: 

              原生支持多集群,并且在集群之間通過地域復制 (geo-replication) 無縫銜接。 

              端到端之間的低延遲。 

              百萬 topic 無縫擴展。 

              支持多種客戶端比如:Java、Go、C++、Python。 

              支持獨占訂閱、共享訂閱、故障轉移訂閱。 

              用 BookKeeper 保證消息的持久化。

              原生支持輕量級微服務計算框架 Pulsar Functions。 

              基于 Pulsar Functions 的微服務連接器框架 Pulsar IO,方便數據在 Apache Pulsar 的輸入輸出。

              分層存儲提供了當數據變為老數據時可以從熱存儲卸載到類似 S3 或 GCS 的冷存儲。

              Queuing vs Streaming

              Queuing

              消息隊列沒有順序,并且可以共享,消費者可以從一個點對點的消息隊列中接收消息。當有消息發出后,任何消費者都有可能接收到這條消息并進行消費,至于哪個消費者能接收到消息是由消息中間件的實現來決定的。消息隊列通常會應用在一些無狀態的應用中,這些應用并不關心這些消息的接收順序,他們只需要將這些收到的消息進行確認或者刪除,并且盡可能的去并發處理這些消息。典型的消息系統有 RabbitMQ、RocketMQ。

              Streaming

              與消息隊列正好相反,streaming 是嚴格要求順序并且是獨占的消息。在流消息這種情況下,通常只有一個消費者消費,并且這條消息是和寫入時的順序一致。流消息通常用于有狀態的應用中,這些應用要求消息的順序與寫入時一致,錯誤的順序會影響結果的正確性,也會影響對這些消息的處理。隊列和流的存在, 在現在的微服務架構和事件驅動架構中舉足輕重。

              Stream process

              流處理是在消息的生產者和消費者中間的處理過程。在消息到達消費者之前,可以自定義輸出消息,來達到符合自己要求的消息。通常流處理應用于大數據的處理過程,一些公司的數據都是實時動態生成,采用時間窗口或者其他方式對復雜的流事件進行分析和處理,然后再傳遞給下一個消費者消費。

              Process Guarantees

              Process Guarantees 是 Pulsar 中消息接收或處理的保證機制,目前在 Pulsar 中,這種保證大部分是在 Pulsar Functions 中,由于 Pulsar Functions 是一種 Event process, 數據的處理過程對結果會造成影響,所以需要一種機制來保證數據的處理次數。

              Pulsar 提供了以下幾種狀態:

              At most once: 指此條消息最多被使用一次。 

              At least once (default): 指在接收到消息后,這條消息會被至少使用一次;如果不成功,重新拿到消息處理。在 Pulsar Function 處理過程所產生的中間修改會被保存。 

              Effectively once: 在 Pulsar Functions 只有效處理一次,當一次處理過程出錯,中間修改不會被保存。

              以上狀態大多數在 Pulsar Functions 中使用,在消費者端,Pulsar 會保證 At least once。

              更多關于 Pulsar 的技術干貨和產品動態,請關注 ApachePulsar 微信公眾號。

              點擊“閱讀原文”,進入 Pulsar 官網了解更多。

              責任編輯:

              標簽:

              相關推薦:

              精彩放送:

              新聞聚焦
              Top 中文字幕在线观看亚洲日韩