這篇文章給大家介紹為什么選擇 Pulsar 而非 Kafka ,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

創(chuàng)新互聯(lián)是一家企業(yè)級(jí)云計(jì)算解決方案提供商,超15年IDC數(shù)據(jù)中心運(yùn)營(yíng)經(jīng)驗(yàn)。主營(yíng)GPU顯卡服務(wù)器,站群服務(wù)器,成都服務(wù)器托管,海外高防服務(wù)器,服務(wù)器機(jī)柜,動(dòng)態(tài)撥號(hào)VPS,海外云手機(jī),海外云服務(wù)器,海外服務(wù)器租用托管等。
Pulsar 對(duì)多租戶的支持是一個(gè)很重要的特性。
在企業(yè)中,消息基礎(chǔ)架構(gòu)會(huì)被多團(tuán)隊(duì)、多項(xiàng)目使用。
為每個(gè)團(tuán)隊(duì)(項(xiàng)目)分別維護(hù)一個(gè)獨(dú)立的消息系統(tǒng)集群代價(jià)過(guò)高且難以維護(hù)。
Pulsar 可以有
多個(gè)租戶
,這些租戶可以有多個(gè)命名空間,以保持內(nèi)容順序。
再加上每個(gè)命名空間的訪問(wèn)控制、配額、速率限制等,可以想象,將來(lái)我們可以只使用一個(gè)集群就能處理多租戶問(wèn)題。
其實(shí)不僅我們考慮到這個(gè)問(wèn)題,Kafka 也會(huì)考慮。 接下來(lái),我會(huì)講到很多細(xì)節(jié)。
要想確保消息不丟失,消息傳遞系統(tǒng)會(huì)配置每條消息生成 2 或 3 個(gè)副本,以防出錯(cuò)。
Kafka 使用 follow-the-leader 模型來(lái)實(shí)現(xiàn)這一點(diǎn)。
Leader 存儲(chǔ)消息,而 follower 復(fù)制 leader 上的消息。
一旦有足夠多的 follower 確認(rèn)已經(jīng)完成了復(fù)制,Kafka 就“高興”了。
Pulsar 使用
Quorum 模型
。
它把消息發(fā)送給一堆節(jié)點(diǎn),一旦有足夠多的節(jié)點(diǎn)確認(rèn)它們已經(jīng)接收到消息,Pulsar 就很“高興”。Quorum 復(fù)制更加民主,沒(méi)有這種 leader-follower 層次結(jié)構(gòu)。
所有選票均等時(shí),多數(shù)勝利。
但這與技術(shù)無(wú)關(guān)。
重要的是,隨著時(shí)間的推移,Quorum 復(fù)制傾向于提供更一致的行為。這或許可以解釋為什么 Pulsar 具有更一致的延遲性能。
事實(shí)上,Kafka 也一直在考慮使用 Quorum 復(fù)制來(lái)改善延遲一致性。
關(guān)于此,可以查看
KIP-250
中的討論。像 Kafka 這樣的流處理系統(tǒng),其一大優(yōu)點(diǎn)在于它能夠重放已經(jīng)被消費(fèi)的消息。
如果你第一次見(jiàn)到就很喜歡這些消息,則可以進(jìn)行重播以更正某些內(nèi)容,或圍繞它們構(gòu)建新的應(yīng)用程序,這也是很有趣的。如果你非常喜歡這些消息,想把它們永遠(yuǎn)保存下來(lái),那該怎么辦?
比如,如果你在做
事件溯源
。
這聽(tīng)起來(lái)很不錯(cuò),但永久可是
一段很長(zhǎng)的時(shí)間
,而且永久存儲(chǔ)消息也可能很貴,特別是存儲(chǔ)在高性能固態(tài)硬盤上。
這些硬盤需要維持消息系統(tǒng)保持良好的運(yùn)行狀態(tài)。如果能把那些舊消息(那些以后可能會(huì)再用到的消息)轉(zhuǎn)移到相對(duì)便宜的存儲(chǔ)解決方案中,是否可行呢?
如果可以使用像 Amazon S3 存儲(chǔ)桶這樣廉價(jià)的云存儲(chǔ),那豈不是很棒嗎?
你可能已經(jīng)猜到我要說(shuō)什么了。借助 Pulsar
分層存儲(chǔ)
,你可以把那些舊消息自動(dòng)推送到幾乎無(wú)限的、廉價(jià)的云存儲(chǔ)中,然后像檢索新消息一樣執(zhí)行相關(guān)操作。
我敢打賭,Kafka 希望擁有該功能。
沒(méi)錯(cuò),他們會(huì)的。顯然,安全是很重要的,誰(shuí)都不希望信息安全被偷窺。
當(dāng)然,你會(huì)在客戶端和消息傳遞系統(tǒng)之間使用 TLS(在傳輸過(guò)程中加密)。
這樣做時(shí),消息傳遞系統(tǒng)必須解密該連接,以便了解客戶端想要表達(dá)的內(nèi)容。 然后,它把未加密的消息保存在磁盤上。
當(dāng)然,你會(huì)堅(jiān)持對(duì)磁盤進(jìn)行加密,這樣即使磁盤被偷,消息仍然是安全的(靜態(tài)加密)。
但在這兩種情況下,消息傳遞系統(tǒng)都需要有數(shù)據(jù)的密鑰。
如果不是這樣,那就是在處理一大堆莫名其妙的天書。許多情況下,這種級(jí)別的加密已經(jīng)足夠好了,但是如果你想要確保沒(méi)有人可以偷窺你的消息,則需要進(jìn)行端到端加密。
生產(chǎn)者在發(fā)送消息之前使用與接收消息的使用者共享的密鑰對(duì)消息進(jìn)行加密。
當(dāng)消息保存在消息系統(tǒng)的磁盤上時(shí),就會(huì)被加密,而消息系統(tǒng)沒(méi)有密鑰。
消息傳遞系統(tǒng)可以完成它的工作,但是你的消息對(duì)于消息傳遞系統(tǒng)來(lái)說(shuō)是就像天書一樣,所以是十分安全的。Pulsar 可以在其 Java 客戶端中進(jìn)行
端到端加密
。 Pulsar broker 是無(wú)狀態(tài)的。
組件無(wú)狀態(tài)是件非常棒的事情,當(dāng)一個(gè)組件過(guò)載時(shí),你可以添加另一個(gè)組件來(lái)處理負(fù)載。
當(dāng)新客戶端連接時(shí),可以將它們定向到新實(shí)例。
但這并不能幫助到第一次被重載的實(shí)例。
你需要將一些工作從重載實(shí)例轉(zhuǎn)移到新的實(shí)例上。
換句話說(shuō),需要重新平衡負(fù)載。Pulsar 會(huì)自動(dòng)進(jìn)行
broker 負(fù)載平衡
。
它監(jiān)視 broker 的 CPU、內(nèi)存、網(wǎng)絡(luò)(不是磁盤,我提到的代理是無(wú)狀態(tài)的)的使用情況,并調(diào)整負(fù)載以保持平衡。
這意味著你不需要在單個(gè) broker 熱點(diǎn)時(shí)擴(kuò)容 broker 集群,除非 broker 集群服務(wù)能力到達(dá)上限。你也可以使用 Kafka 進(jìn)行代理負(fù)載平衡。
但是,你必須多安裝一個(gè)程序,例如 LinkedIn 的
Cruise Control
。
或者也可以使用 Confluent 的
負(fù)載平衡器工具
(這款工具是需要付費(fèi)的)。>>> 社區(qū)和生態(tài)系統(tǒng) <<<有人批評(píng)我沒(méi)有提到 Kafka 社區(qū)和生態(tài)系統(tǒng)的規(guī)模和豐富程度。
這個(gè)批評(píng)很中肯。
在社區(qū)和生態(tài)系統(tǒng)類別中,Kafka 確實(shí)比 Pulsar 做得好。
作為一個(gè)開(kāi)源項(xiàng)目,Kafka 已經(jīng)開(kāi)創(chuàng)了 5 年,所以它有一個(gè)更大的社區(qū),有更多相關(guān)的項(xiàng)目,并且在 Stack Overflow 上有更多相關(guān)的問(wèn)題與答案。隨著大家不斷貢獻(xiàn)新的組件和周邊集成,Pulsar 社區(qū)日益發(fā)展壯大,Slack 社區(qū)的小伙伴們都很友好,也樂(lè)于助人。
我還想補(bǔ)充一下:
Pulsar 在許多方面受到 Kafka 的啟發(fā),并且站在了巨人 Kafka 的肩膀上。
Kafka 項(xiàng)目和社區(qū)值得稱贊與尊重。
有時(shí)候聽(tīng)起來(lái)像是我不尊重 Kafka,其實(shí)我很尊重 Kafka,我只是對(duì) Pulsar 更有好感罷了。我認(rèn)為 Pulsar 是 Kafka 的
合理替代品
。
Pulsar 支持 Kafka 的大部分功能,而且 Pulsar 有更多優(yōu)勢(shì)(目前我列舉了 12 個(gè))。
了解 Pulsar 的人越多,它的發(fā)展勢(shì)頭就越大。
如果你正在評(píng)估流和/或隊(duì)列系統(tǒng),考慮一下
Apache Pulsar
吧。關(guān)于為什么選擇 Pulsar 而非 Kafka 就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
網(wǎng)站題目:為什么選擇Pulsar而非Kafka
標(biāo)題來(lái)源:http://jinyejixie.com/article30/ppjgpo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站、用戶體驗(yàn)、搜索引擎優(yōu)化、電子商務(wù)、關(guān)鍵詞優(yōu)化、App開(kāi)發(fā)
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源:
創(chuàng)新互聯(lián)