您好,登錄后才能下訂單哦!
這篇文章主要講解了“Apache Pulsar而非Kafka的理由有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Apache Pulsar而非Kafka的理由有哪些”吧!
關于 Apache Pulsar
Apache Pulsar 是 Apache 軟件基金會頂級項目,是下一代云原生分布式消息流平臺,集消息、存儲、輕量化函數式計算為一體,采用計算與存儲分離架構設計,支持多租戶、持久化存儲、多機房跨區域數據復制,具有強一致性、高吞吐、低延時及高可擴展性等流數據存儲特性。
Apache Pulsar 具有眾多獨特優勢,如分層存儲、無狀態 broker、跨地域復制、多租戶等,這些特性讓 Pulsar 比 Kafka 更勝一籌。
使用 Kafka 時,需要先設置 broker 的數量。由于 Kafka 將數據存儲在 broker 中,因此在使用過程中,一旦發現設置值偏小,需要更多 broker 來擴展應用程序時,就需要充分利用新分區,必須對 topic 重新分區。
Pulsar 將 broker 的狀態保存在單獨的層( Apache BookKeeper[1])中。Broker 層與存儲層解耦,無需移動數據即可添加或使用 broker。也就是說,無需對現有數據進行重新分區也可以充分利用新 broker。
Kafka 默認數據保留時間為 7 天,也就是說,一周后會刪除數據。而 Pulsar 默認保留所有未 ack 的數據,并立即刪除已 ack 的數據。
Kafka 和 Pulsar 都支持通過自定義保留策略修改數據保留期限。但是,主存儲中可存儲的數據量會受到限制,增加數據量也會增加存儲成本。分層存儲支持為不同類型的數據選擇節約成本又合適的存儲。例如,僅在引導(回填)應用程序中會用到歷史數據,因此可以為歷史數據選擇不同的存儲類型。
Pulsar 的存儲層采用分片架構,分片分布在存儲節點上。使用 Pulsar,既可以寫入分片到主存儲,也可以卸載分片到其他類型的存儲中。因此,Pulsar 支持分層存儲,但 Kafka 目前還不支持分層存儲。分層存儲提供多個存儲層,如主存儲(基于 SSD)、歷史存儲(S3)等,因此可以輕松獲取每一層的存儲情況。
Pulsar 采用基于 quorum 的算法進行復制,而 Kafka 采用基于 leader-follower 的算法。雖然 Pulsar 和 Kafka 的保證相同,但基于 quorum 方式產生的延遲一致性更高。對于很多應用程序來說,延遲一致性很重要,例如,獲取某些 SLA(如查詢的響應時間)。
Pulsar 原生支持跨地域復制,因此 Pulsar 可以跨不同地理位置的數據中心復制數據。當數據中心中斷或網絡分區時,在多個數據中心存有消息副本尤為重要,提高可用性。
Pulsar 支持多租戶,即多個用戶組通過訪問控制或在完全不同的命名空間中共享同一集群。Kafka 目前不支持多租戶,因此要共享集群就需要基于消息系統搭建一個抽象的層,或者每個用戶組單獨使用一個集群。
Pulsar 提供從客戶端到存儲節點的端到端完全加密。完全加密一般是對數據安全性的要求。Kafka 目前不支持端到端加密。
Pulsar 不僅支持多種協議(如 RabbitMQ、AMQP、Kafka),還支持使用 Presto[2] 并行讀取歷史流事件。
Pulsar Functions 是基于 Pulsar 的輕量級流處理方式,其概念類似于 Kafka Streams。Pulsar Functions 直接部署在 broker 節點上(或作為 Kubernetes 集群中的容器),而 Kafka Streams 則是一個單獨的應用程序。通過 Pulsar Functions,Pulsar 可以直接解決許多流處理任務,簡化操作。
Pulsar 社區就 Pulsar Functions 的局限性展開了一系列公開討論,例如狀態管理、DAG 流程等。如果 Pulsar Functions 不適用于你的使用場景,你可以考慮另一個廣受歡迎的開源工具——Pulsar Flink connector[3]。
Pulsar 在設計上具有諸多優勢。最初由雅虎團隊開發,用于雅虎內部。2016 年,雅虎將 Pulsar 捐贈給 Apache 軟件基金會[4]。之后,很多任務關鍵型應用程序都采用了 Pulsar,例如騰訊、Splunk[5]等等[6]。
Pulsar 需要兩個系統:Apache BookKeeper 和 Apache ZooKeeper,而 Kafka“只”需要 ZooKeeper。多個系統會增加操作復雜性,但也正因為采用多個系統,Pulsar 才更靈活。由于 Kafka 和 Pulsar 都使用了其他系統,二者都需要設置和維護。
在 Pulsar 和 Kafka 之間作出選擇并不容易,這一決定也會帶來一系列影響。我在本文中總結了 Pulsar 和 Kafka 之間的主要差異,希望這些信息可以幫助你和你的團隊作出選擇。如需進一步了解 Apache Pulsar 的信息,可以訪問 pulsar.apache.org 或訂閱郵件通知[7]。如果想要與社區的小伙伴取得聯系,可以掃描文末二維碼加入微信交流群。
感謝各位的閱讀,以上就是“Apache Pulsar而非Kafka的理由有哪些”的內容了,經過本文的學習后,相信大家對Apache Pulsar而非Kafka的理由有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。