摘要:如果大家想了解更多關(guān)于的知識(shí),那么就參加本月日,由和高可用共同舉辦的全球互聯(lián)網(wǎng)架構(gòu)大會(huì)吧和的成員和翟佳將出席深圳站,作為中間件專場(chǎng)講師分享下一代分布式消息系統(tǒng)的話題。參加年深圳站,可以了解業(yè)界動(dòng)態(tài),和業(yè)界專家近距離接觸。
導(dǎo)讀:在傳統(tǒng)消息系統(tǒng)中,存在一些問題。一方面,消息的存儲(chǔ)和服務(wù)一般是緊耦合的,節(jié)點(diǎn)的擴(kuò)容和運(yùn)維不便,特別是在需要多備份來保證高可用性的場(chǎng)景。另一方面,消息的消費(fèi)模式被固定,在企業(yè)內(nèi)部需要維護(hù)多套系統(tǒng)來保證不同的消息消費(fèi)場(chǎng)景。另外消息系統(tǒng)中,多租戶,多機(jī)房互備等企業(yè)級(jí)的特性和功能也不太豐富。
Apache Pulsar采用了分層的架構(gòu),解決了存儲(chǔ)計(jì)算的耦合,同時(shí)提供了很好的擴(kuò)展性和可維護(hù)性。Pulsar也通過訂閱層的抽象,提供了統(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多萬個(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),它可以提供如下特性:
持久化:采用 BookKeeper 作為存儲(chǔ)層,靈活性強(qiáng)。
Ordering:每個(gè)消息有全局唯一的 ID,消息重發(fā)簡(jiǎn)單。
Delivery Guarantees:At least once, at most once 和 effectively once。
高吞吐:?jiǎn)蝹€(gè)分區(qū)高達(dá) 1.8 M 消息/秒。
低延遲:99% 的生產(chǎn)延遲小于 5 ms。
統(tǒng)一消息模型:同時(shí)支持兩種消費(fèi)模型,流和隊(duì)列。
多租戶:?jiǎn)蝹€(gè)群集可支持多租戶和用例。
跨地域復(fù)制:原生可用。
高可用、高擴(kuò)展性、易運(yùn)維
架構(gòu)概述
Pulsar使用分層結(jié)構(gòu),將存儲(chǔ)機(jī)制與broker隔離開來。此體系結(jié)構(gòu)為Pulsar提供以下好處:
1、獨(dú)立擴(kuò)展broker,負(fù)責(zé)處理Producer發(fā)來的消息并分發(fā)給消費(fèi)者。通過一個(gè)全局的ZK集群來處理多種協(xié)作式任務(wù),例如說基于地理位置的復(fù)制。并將消息存儲(chǔ)到BookKeeper中,同時(shí)單個(gè)集群內(nèi)也需要有一套ZK集群,來存儲(chǔ)一些元數(shù)據(jù)。
2、獨(dú)立擴(kuò)展存儲(chǔ)(Bookies)
3、更容易容器化Zookeeper, Broker and Bookies
4、ZooKeeper提供集群的配置和狀態(tài)存儲(chǔ)
亮點(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沒有消費(fèi)者,但數(shù)據(jù)中心A或B中仍會(huì)根據(jù)訂閱模型消費(fèi)消息。
多租戶
多租戶特性通過對(duì)數(shù)據(jù)存儲(chǔ)的隔離,幫助為企業(yè)建立Pulsar集群。這一內(nèi)置功能將大大降低組織的基礎(chǔ)設(shè)施建設(shè)和運(yùn)營(yíng)成本。
零Rebalancing時(shí)間
Pulsar的分層架構(gòu)和代理的無狀態(tài)性質(zhì)有助于實(shí)現(xiàn)零Rebalancing時(shí)間。如果一個(gè)新的broker被添加到集群中,它將立即可用;無需在集群中rebalancing數(shù)據(jù)。
從Bookies的角度來看:當(dāng)一個(gè)新的Bookie添加到集群中時(shí),由于其底層的分布式日志架構(gòu)(讀/寫隔離),該節(jié)點(diǎn)立刻可以寫入數(shù)據(jù)?;诙螐?fù)制配置的數(shù)據(jù)rebalance在后臺(tái)進(jìn)行,不會(huì)對(duì)集群產(chǎn)生任何影響。
統(tǒng)一的隊(duì)列和流模型
Pulsar使用同一個(gè)模型支持流和隊(duì)列語義。這個(gè)特性可以通過訂閱模型實(shí)現(xiàn)。消費(fèi)者使用訂閱模型中的任何一個(gè)訂閱主題:
1、Exclusive - 支持流語義
2、Failover - 支持流語義
3、Shared - 支持隊(duì)列語義
函數(shù)
函數(shù)是能夠在Pulsar內(nèi)部或外部存在的本地監(jiān)聽器。從用途本身來看,函數(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/a...
作者:Karthikeyan Palanivelu,由方圓翻譯
不知大家讀完此文,是否被Pulsar所吸引?它確實(shí)彌補(bǔ)了一些競(jìng)品的短板,例如地域復(fù)制、多用戶、擴(kuò)展性、讀寫隔離等等。如果大家想了解更多關(guān)于Apache Pulsar的知識(shí),那么就參加本月21-23日,由msup和高可用共同舉辦的GIAC全球互聯(lián)網(wǎng)架構(gòu)大會(huì)吧!
Apache Pulsar和Apache BookKeeper的PMC成員和Committer翟佳將出席GIAC深圳站,作為中間件專場(chǎng)講師分享《下一代分布式消息系統(tǒng)Apache Pulsar》的話題。參加2019年GIAC深圳站,可以了解業(yè)界動(dòng)態(tài),和業(yè)界專家近距離接觸。
本屆大會(huì),組委會(huì)還特別邀請(qǐng)到了105位來自Google、微軟、Oracle、eBay、百度、阿里、騰訊、商湯、圖森、字節(jié)跳動(dòng)、新浪、美團(tuán)點(diǎn)評(píng)等一線互聯(lián)網(wǎng)大廠嘉賓作為講師出席,分享他們的實(shí)踐經(jīng)驗(yàn)、遇到的問題及解決方案?,F(xiàn)在席位所剩不多,快來識(shí)別圖中二維碼報(bào)名吧!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/36030.html
摘要:二基于的優(yōu)先級(jí)隊(duì)列方案針對(duì)以上場(chǎng)景,個(gè)推基于設(shè)計(jì)了第一版的優(yōu)先級(jí)隊(duì)列方案。架構(gòu)在該方案中,個(gè)推將優(yōu)先級(jí)統(tǒng)一設(shè)定為高中低三個(gè)級(jí)別。六總結(jié)現(xiàn)在個(gè)推針對(duì)優(yōu)先級(jí)中間件的改造方案已經(jīng)在部分現(xiàn)網(wǎng)業(yè)務(wù)中試運(yùn)行,對(duì)于的穩(wěn)定性,我們還在持續(xù)關(guān)注中。 showImg(https://segmentfault.com/img/remote/1460000018868129);作者:個(gè)推平臺(tái)研發(fā)工程師 祥子 ...
摘要:當(dāng)我們正準(zhǔn)備做前期調(diào)研和設(shè)計(jì)的時(shí)候,主辦方把唐長(zhǎng)老拉去做現(xiàn)場(chǎng)導(dǎo)師,參賽規(guī)則規(guī)定導(dǎo)師不能下場(chǎng)比賽,囧,于是就這樣被被動(dòng)放了鴿子。川總早早來到現(xiàn)場(chǎng)。 本文作者是來自 TiBoys 隊(duì)的崔秋同學(xué),他們的項(xiàng)目 TBSSQL 在 TiDB Hackathon 2018 中獲得了一等獎(jiǎng)。TiDB Batch and Streaming SQL(簡(jiǎn)稱 TBSSQL)擴(kuò)展了 TiDB 的 SQL 引擎...
摘要:而在服務(wù)器中應(yīng)該充分利用多線程來處理執(zhí)行邏輯。能保證所在的失效,該消息仍然可以從新選舉的中獲取,不會(huì)造成消息丟失。這意味著無需等待來自的確認(rèn)而繼續(xù)發(fā)送下一批消息。 showImg(https://segmentfault.com/img/remote/1460000018373147?w=702&h=369); 1.概述 Apache Kafka最早是由LinkedIn開源出來的分布式...
閱讀 1857·2021-11-15 11:46
閱讀 1055·2021-10-26 09:49
閱讀 1797·2021-10-14 09:42
閱讀 3355·2021-09-26 09:55
閱讀 813·2019-08-30 13:58
閱讀 997·2019-08-29 16:40
閱讀 3433·2019-08-26 10:27
閱讀 584·2019-08-23 18:18