技術專家:爲何咱們最終選擇Apache Pulsar替代Kafka?

clipboard.png

導讀:在傳統消息系統中,存在一些問題。一方面,消息的存儲和服務通常是緊耦合的,節點的擴容和運維不便,特別是在須要多備份來保證高可用性的場景。另外一方面,消息的消費模式被固定,在企業內部須要維護多套系統來保證不一樣的消息消費場景。另外消息系統中,多租戶,多機房互備等企業級的特性和功能也不太豐富。apache

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消息平臺,它能夠提供以下特性:運維

持久化:採用 BookKeeper 做爲存儲層,靈活性強。分佈式

Ordering:每一個消息有全局惟一的 ID,消息重發簡單。函數

Delivery Guarantees:At least once, at most once 和 effectively once。spa

高吞吐:單個分區高達 1.8 M 消息/秒。翻譯

低延遲:99% 的生產延遲小於 5 ms。設計

統一消息模型:同時支持兩種消費模型,流和隊列。代理

多租戶:單個羣集可支持多租戶和用例。

跨地域複製:原生可用。

高可用、高擴展性、易運維

架構概述

clipboard.png

Pulsar使用分層結構,將存儲機制與broker隔離開來。此體系結構爲Pulsar提供如下好處:

一、獨立擴展broker,負責處理Producer發來的消息並分發給消費者。經過一個全局的ZK集羣來處理多種協做式任務,例如說基於地理位置的複製。並將消息存儲到BookKeeper中,同時單個集羣內也須要有一套ZK集羣,來存儲一些元數據。

二、獨立擴展存儲(Bookies)

三、更容易容器化Zookeeper, Broker and Bookies

四、ZooKeeper提供集羣的配置和狀態存儲

clipboard.png

亮點以下:

一、負載均衡器:Pulsar內置負載均衡器,可在內部將負載分配給全部broker

二、服務發現:Pulsar具備內置的服務發現功能,能夠識別在何處以及如何鏈接到broker。

三、全局複製器:能夠在爲同一個命名空間配置的N個borker之間複製數據。

四、全局ZK:全局ZK用於實現跨地域複製

跨地域複製

跨地域複製是Pulsar提供的解決方案。全局集羣能夠在名稱空間級別進行配置,以便在任意數量的集羣(n-wayMesh解決方案)中進行復制。從下面的示例中,數據中心C沒有消費者,但數據中心A或B中仍會根據訂閱模型消費消息。

clipboard.png

多租戶

多租戶特性經過對數據存儲的隔離,幫助爲企業創建Pulsar集羣。這一內置功能將大大下降組織的基礎設施建設和運營成本。

零Rebalancing時間

Pulsar的分層架構和代理的無狀態性質有助於實現零Rebalancing時間。若是一個新的broker被添加到集羣中,它將當即可用;無需在集羣中rebalancing數據。

從Bookies的角度來看:當一個新的Bookie添加到集羣中時,因爲其底層的分佈式日誌架構(讀/寫隔離),該節點馬上能夠寫入數據。基於段複製配置的數據rebalance在後臺進行,不會對集羣產生任何影響。

統一的隊列和流模型

Pulsar使用同一個模型支持流和隊列語義。這個特性能夠經過訂閱模型實現。消費者使用訂閱模型中的任何一個訂閱主題:

一、Exclusive - 支持流語義

二、Failover - 支持流語義

三、Shared - 支持隊列語義

clipboard.png

函數

函數是可以在Pulsar內部或外部存在的本地監聽器。從用途自己來看,函數可用於基於內容的路由,這將幫助企業應用程序路由預期的消息。

Proxy

當broker部署在雲或Kubernetes中時,須要使用proxy將broker暴露於外部世界。Proxy自己能夠提供身份驗證和受權。Proxy內置將受權令牌傳遞給broker以進行命名空間權限驗證的功能。

結論

Apache Pulsar使用基於分層體系結構的pub/sub模型,它具備跨地域複製、多租戶、零Rebalancing時間等功能。

原文地址:https://medium.com/@pckeyan/a...

做者:Karthikeyan Palanivelu,由方圓翻譯

不知你們讀完此文,是否被Pulsar所吸引?它確實彌補了一些競品的短板,例如地域複製、多用戶、擴展性、讀寫隔離等等。若是你們想了解更多關於Apache Pulsar的知識,那麼就參加本月21-23日,由msup和高可用共同舉辦的GIAC全球互聯網架構大會吧!

Apache Pulsar和Apache BookKeeper的PMC成員和Committer翟佳將出席GIAC深圳站,做爲中間件專場講師分享《下一代分佈式消息系統Apache Pulsar》的話題。參加2019年GIAC深圳站,能夠了解業界動態,和業界專家近距離接觸。

本屆大會,組委會還特別邀請到了105位來自Google、微軟、Oracle、eBay、百度、阿里、騰訊、商湯、圖森、字節跳動、新浪、美團點評等一線互聯網大廠嘉賓做爲講師出席,分享他們的實踐經驗、遇到的問題及解決方案。如今席位所剩很少,快來識別圖中二維碼報名吧!

clipboard.png

相關文章
相關標籤/搜索