被視為代替Kafka的消息隊列:Apache Pulsar設計簡介
導讀:在傳統消息系統中,存在一些問題。一方面,消息的存儲和服務一般是緊耦合的,節點的擴容和運維不便,特別是在需要多備份來保證高可用性的場景。另一方面,消息的消費模式被固定,在企業內部需要維護多套系統來保證不同的消息消費場景。另外消息系統中,多租戶,多機房互備等企業級的特性和功能也不太豐富。
Apache Pulsar採用了分層的架構,解決了存儲計算的耦合,同時提供了很好的擴展性和可維護性。Pulsar也通過訂閱層的抽象,提供了統一的消息消費模型。特別是在Pulsar的設計之初,就注重對多租戶,多機房互備等方面的需求,提供了眾多完備的企業級的特性。
Apache Pulsar從2015年初在Yahoo全球近十個機房內部大規模部署,穩定服務了Yahoo內部郵箱,金融,Flickr,廣告,NoSQL等眾多的應用場景,一共創建了80多個租戶,230多萬個topic。 智聯招聘在18年用Pulsar替換了線上原有的RabbitMQ,作為內部的消息匯流排,服務內部的20多個應用,每天會產生6億多條消息和3TB的數據。在減輕硬體,運維和部署成本的同時,為系統提供了更好的服務質量和擴展性。
Apache Pulsar,是一個使用Apache Bookkeeper提供持久化的pub/sub消息平台,它可以提供如下特性:
跨地域複製
多租戶
零數據丟失
零Rebalancing時間
統一的隊列和流模型
高可擴展性
高吞吐量
Pulsar Proxy
函數
Apache Pulsar的文檔對這些特性都有詳細解釋,有興趣可以去看官方文檔。
架構Pulsar使用分層結構,將存儲機制與broker隔離開來。此體系結構為Pulsar提供以下好處:
獨立擴展broker
獨立擴展存儲(Bookies)
更容易容器化Zookeeper, Broker and Bookies
ZooKeeper提供集群的配置和狀態存儲
亮點如下:
負載均衡器:Pulsar內置負載均衡器,可在內部將負載分配給所有broker
服務發現:Pulsar具有內置的服務發現功能,可以識別在何處以及如何連接到broker。
全局複製器:可以在為同一個命名空間配置的N個borker之間複製數據。
全局ZK: 全局ZK用於實現跨地域複製
跨地域複製
跨地域複製是Pulsar提供的解決方案。全局集群可以在名稱空間級別進行配置,以便在任意數量的集群(n-wayMesh解決方案)中進行複製。從下面的示例中,數據中心C沒有消費者,但數據中心A或B中仍會根據訂閱模型消費消息。
多租戶多租戶特性通過對數據存儲的隔離,幫助為企業建立Pulsar集群。這一內置功能將大大降低組織的基礎設施建設和運營成本。
零Rebalancing時間Pulsar的分層架構和代理的無狀態性質有助於實現零Rebalancing時間。如果一個新的broker被添加到集群中,它將立即可用;無需在集群中rebalancing數據。
從Bookies的角度來看:當一個新的Bookie添加到集群中時,由於其底層的分散式日誌架構(讀/寫隔離),該節點立刻可以寫入數據。基於段複製配置的數據rebalance在後台進行,不會對集群產生任何影響。
統一的隊列和流模型Pulsar使用同一個模型支持流和隊列語義。這個特性可以通過訂閱模型實現。消費者使用訂閱模型中的任何一個訂閱主題:
Exclusive - 支持流語義
Failover - 支持流語義
Shared - 支持隊列語義
函數是能夠在Pulsar內部或外部存在的本地監聽器。從用途本身來看,函數可用於基於內容的路由,這將幫助企業應用程序路由預期的消息。
Proxy當broker部署在雲或Kubernetes中時,需要使用proxy將broker暴露於外部世界。Proxy本身可以提供身份驗證和授權。Proxy內置將授權令牌傳遞給broker以進行命名空間許可權驗證的功能。
結論Apache Pulsar使用基於分層體系結構的pub/sub模型,它具有跨地域複製、多租戶、零Rebalancing時間等功能。
原文地址:https://medium.com/@pckeyan/apache-pulsar-gentle-introduction-465ca6da0e18
參考閱讀:
10行代碼理解Java鎖消除
未來架構| 雲原生時代的分散式事務
5分鐘了解Java 12 八大新特性
主流微服務註冊中心淺析和對比
一圖了解Google工具棧
Facebook F4架構解讀:千億級圖片存儲Haystack的演進
本文作者Karthikeyan Palanivelu,由方圓翻譯。轉載本文請註明出處,歡迎更多小夥伴加入翻譯及投稿文章的行列,詳情請戳公眾號菜單「聯繫我們」。
GIAC全球互聯網架構大會深圳站將於2019年6月舉行,Apache Pulsar和Apache BookKeeper的PMC成員和Committer翟佳將作為中間件專場的講師出席2019年GIAC深圳站,並做關於Apache Pulsar的演講。參加2019年GIAC深圳站,可以了解業界動態,和業界專家近距離接觸。
參加 GIAC,盤點2019年最新技術,目前購買7.5折優惠,多人購買有更多優惠。識別二維碼了解大會更多詳情。
※讀書日活動,來領一本好書吧!高可用,雲原生,Service Mesh都有……
TAG:高可用架構 |