代替Kafka的消息隊(duì)列:Apache Pulsar設(shè)計(jì)簡(jiǎn)介

導(dǎo)讀:在傳統(tǒng)消息系統(tǒng)中季率,存在一些問(wèn)題。一方面描沟,消息的存儲(chǔ)和服務(wù)一般是緊耦合的飒泻,節(jié)點(diǎn)的擴(kuò)容和運(yùn)維不便鞭光,特別是在需要多備份來(lái)保證高可用性的場(chǎng)景。另一方面泞遗,消息的消費(fèi)模式被固定衰猛,在企業(yè)內(nèi)部需要維護(hù)多套系統(tǒng)來(lái)保證不同的消息消費(fèi)場(chǎng)景。另外消息系統(tǒng)中刹孔,多租戶,多機(jī)房互備等企業(yè)級(jí)的特性和功能也不太豐富娜睛。

Apache Pulsar采用了分層的架構(gòu)髓霞,解決了存儲(chǔ)計(jì)算的耦合,同時(shí)提供了很好的擴(kuò)展性和可維護(hù)性畦戒。Pulsar也通過(guò)訂閱層的抽象方库,提供了統(tǒng)一的消息消費(fèi)模型。特別是在Pulsar的設(shè)計(jì)之初障斋,就注重對(duì)多租戶纵潦,多機(jī)房互備等方面的需求,提供了眾多完備的企業(yè)級(jí)的特性垃环。

Apache Pulsar從2015年初在Yahoo全球近十個(gè)機(jī)房?jī)?nèi)部大規(guī)模部署邀层,穩(wěn)定服務(wù)了Yahoo內(nèi)部郵箱,金融遂庄,F(xiàn)lickr寥院,廣告,NoSQL等眾多的應(yīng)用場(chǎng)景涛目,一共創(chuàng)建了80多個(gè)租戶秸谢,230多萬(wàn)個(gè)topic。 智聯(lián)招聘在18年用Pulsar替換了線上原有的RabbitMQ霹肝,作為內(nèi)部的消息總線估蹄,服務(wù)內(nèi)部的20多個(gè)應(yīng)用,每天會(huì)產(chǎn)生6億多條消息和3TB的數(shù)據(jù)沫换。在減輕硬件臭蚁,運(yùn)維和部署成本的同時(shí),為系統(tǒng)提供了更好的服務(wù)質(zhì)量和擴(kuò)展性苗沧。

Apache Pulsar刊棕,是一個(gè)使用Apache Bookkeeper提供持久化的pub/sub消息平臺(tái),它可以提供如下特性:

  • 跨地域復(fù)制

  • 多租戶

  • 零數(shù)據(jù)丟失

  • 零Rebalancing時(shí)間

  • 統(tǒng)一的隊(duì)列和流模型

  • 高可擴(kuò)展性

  • 高吞吐量

  • Pulsar Proxy

  • 函數(shù)

Apache Pulsar的文檔對(duì)這些特性都有詳細(xì)解釋待逞,有興趣可以去看官方文檔甥角。

架構(gòu)

image

Pulsar使用分層結(jié)構(gòu),將存儲(chǔ)機(jī)制與broker隔離開(kāi)來(lái)识樱。此體系結(jié)構(gòu)為Pulsar提供以下好處:

  1. 獨(dú)立擴(kuò)展broker

  2. 獨(dú)立擴(kuò)展存儲(chǔ)(Bookies)

  3. 更容易容器化Zookeeper, Broker and Bookies

  4. ZooKeeper提供集群的配置和狀態(tài)存儲(chǔ)

image

亮點(diǎn)如下:

  1. 負(fù)載均衡器:Pulsar內(nèi)置負(fù)載均衡器嗤无,可在內(nèi)部將負(fù)載分配給所有broker

  2. 服務(wù)發(fā)現(xiàn):Pulsar具有內(nèi)置的服務(wù)發(fā)現(xiàn)功能震束,可以識(shí)別在何處以及如何連接到broker。

  3. 全局復(fù)制器:可以在為同一個(gè)命名空間配置的N個(gè)borker之間復(fù)制數(shù)據(jù)当犯。

  4. 全局ZK: 全局ZK用于實(shí)現(xiàn)跨地域復(fù)制

跨地域復(fù)制

跨地域復(fù)制是Pulsar提供的解決方案垢村。全局集群可以在名稱空間級(jí)別進(jìn)行配置,以便在任意數(shù)量的集群(n-wayMesh解決方案)中進(jìn)行復(fù)制嚎卫。從下面的示例中嘉栓,數(shù)據(jù)中心C沒(méi)有消費(fèi)者,但數(shù)據(jù)中心A或B中仍會(huì)根據(jù)訂閱模型消費(fèi)消息拓诸。

image

多租戶

多租戶特性通過(guò)對(duì)數(shù)據(jù)存儲(chǔ)的隔離侵佃,幫助為企業(yè)建立Pulsar集群。這一內(nèi)置功能將大大降低組織的基礎(chǔ)設(shè)施建設(shè)和運(yùn)營(yíng)成本奠支。

零Rebalancing時(shí)間

Pulsar的分層架構(gòu)和代理的無(wú)狀態(tài)性質(zhì)有助于實(shí)現(xiàn)零Rebalancing時(shí)間馋辈。如果一個(gè)新的broker被添加到集群中,它將立即可用倍谜;無(wú)需在集群中rebalancing數(shù)據(jù)迈螟。

從Bookies的角度來(lái)看:當(dāng)一個(gè)新的Bookie添加到集群中時(shí),由于其底層的分布式日志架構(gòu)(讀/寫(xiě)隔離)尔崔,該節(jié)點(diǎn)立刻可以寫(xiě)入數(shù)據(jù)答毫。基于段復(fù)制配置的數(shù)據(jù)rebalance在后臺(tái)進(jìn)行季春,不會(huì)對(duì)集群產(chǎn)生任何影響烙常。

統(tǒng)一的隊(duì)列和流模型

Pulsar使用同一個(gè)模型支持流和隊(duì)列語(yǔ)義。這個(gè)特性可以通過(guò)訂閱模型實(shí)現(xiàn)鹤盒。消費(fèi)者使用訂閱模型中的任何一個(gè)訂閱主題:

  1. Exclusive - 支持流語(yǔ)義

  2. Failover - 支持流語(yǔ)義

  3. Shared - 支持隊(duì)列語(yǔ)義

image

函數(shù)

函數(shù)是能夠在Pulsar內(nèi)部或外部存在的本地監(jiān)聽(tīng)器蚕脏。從用途本身來(lái)看,函數(shù)可用于基于內(nèi)容的路由侦锯,這將幫助企業(yè)應(yīng)用程序路由預(yù)期的消息驼鞭。

Proxy

當(dāng)broker部署在云或Kubernetes中時(shí),需要使用proxy將broker暴露于外部世界尺碰。Proxy本身可以提供身份驗(yàn)證和授權(quán)挣棕。Proxy內(nèi)置將授權(quán)令牌傳遞給broker以進(jìn)行命名空間權(quán)限驗(yàn)證的功能。

結(jié)論

Apache Pulsar使用基于分層體系結(jié)構(gòu)的pub/sub模型亲桥,它具有跨地域復(fù)制洛心、多租戶、零Rebalancing時(shí)間等功能题篷。

原文地址:https://medium.com/@pckeyan/apache-pulsar-gentle-introduction-465ca6da0e18

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末词身,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子番枚,更是在濱河造成了極大的恐慌法严,老刑警劉巖损敷,帶你破解...
    沈念sama閱讀 217,826評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異深啤,居然都是意外死亡拗馒,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)溯街,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)诱桂,“玉大人,你說(shuō)我怎么就攤上這事呈昔》糜眨” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,234評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵韩肝,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我九榔,道長(zhǎng)哀峻,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,562評(píng)論 1 293
  • 正文 為了忘掉前任哲泊,我火速辦了婚禮剩蟀,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘切威。我一直安慰自己育特,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布先朦。 她就那樣靜靜地躺著缰冤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪喳魏。 梳的紋絲不亂的頭發(fā)上棉浸,一...
    開(kāi)封第一講書(shū)人閱讀 51,482評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音刺彩,去河邊找鬼迷郑。 笑死,一個(gè)胖子當(dāng)著我的面吹牛创倔,可吹牛的內(nèi)容都是我干的嗡害。 我是一名探鬼主播,決...
    沈念sama閱讀 40,271評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼畦攘,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼霸妹!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起知押,我...
    開(kāi)封第一講書(shū)人閱讀 39,166評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤抑堡,失蹤者是張志新(化名)和其女友劉穎摆出,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體首妖,經(jīng)...
    沈念sama閱讀 45,608評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡偎漫,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了有缆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片象踊。...
    茶點(diǎn)故事閱讀 39,926評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖棚壁,靈堂內(nèi)的尸體忽然破棺而出杯矩,到底是詐尸還是另有隱情,我是刑警寧澤袖外,帶...
    沈念sama閱讀 35,644評(píng)論 5 346
  • 正文 年R本政府宣布史隆,位于F島的核電站,受9級(jí)特大地震影響曼验,放射性物質(zhì)發(fā)生泄漏泌射。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評(píng)論 3 329
  • 文/蒙蒙 一鬓照、第九天 我趴在偏房一處隱蔽的房頂上張望熔酷。 院中可真熱鬧,春花似錦豺裆、人聲如沸拒秘。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,866評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)躺酒。三九已至,卻和暖如春蔑歌,著一層夾襖步出監(jiān)牢的瞬間阴颖,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,991評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工丐膝, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留量愧,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,063評(píng)論 3 370
  • 正文 我出身青樓帅矗,卻偏偏與公主長(zhǎng)得像偎肃,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子浑此,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容