這篇文章主要介紹“Pulsar與Kafka有哪些區(qū)別”,在日常操作中,相信很多人在Pulsar與Kafka有哪些區(qū)別問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”P(pán)ulsar與Kafka有哪些區(qū)別”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供西鄉(xiāng)網(wǎng)站建設(shè)、西鄉(xiāng)做網(wǎng)站、西鄉(xiāng)網(wǎng)站設(shè)計(jì)、西鄉(xiāng)網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、西鄉(xiāng)企業(yè)網(wǎng)站模板建站服務(wù),10年西鄉(xiāng)做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
Pulsar 由 3 個(gè)主要組件組成:broker、Apache BookKeeper和 Apache ZooKeeper。Broker 是無(wú)狀態(tài)服務(wù),客戶端需要連接到 broker 進(jìn)行核心消息傳遞。而 BookKeeper 和 ZooKeeper 是有狀態(tài)服務(wù)。BookKeeper 節(jié)點(diǎn)(bookie)存儲(chǔ)消息與游標(biāo),ZooKeeper 則只用于為 broker 和 bookie 存儲(chǔ)元數(shù)據(jù)。另外,BookKeeper 使用 RocksDB 作為內(nèi)嵌數(shù)據(jù)庫(kù),用于存儲(chǔ)內(nèi)部索引,但 RocksDB 的管理不獨(dú)立于 BookKeeper。
Kafka 采用單片架構(gòu)模型,將服務(wù)與存儲(chǔ)相結(jié)合,而 Pulsar 則采用了多層架構(gòu),可以在單獨(dú)的層內(nèi)進(jìn)行管理。Pulsar 中的 broker 在一個(gè)層上進(jìn)行計(jì)算,而 bookie 則在另一個(gè)層上管理有狀態(tài)存儲(chǔ)。
Pulsar 的多層架構(gòu)看起來(lái)似乎比 Kafka 的單片架構(gòu)更為復(fù)雜,但實(shí)際情況卻沒(méi)這么簡(jiǎn)單。架構(gòu)設(shè)計(jì)需要權(quán)衡利弊,BookKeeper 使得 Pulsar 更具可伸縮性、操作負(fù)擔(dān)更低、速度更快,性能也更一致。在后文中,我們會(huì)就以上幾點(diǎn)進(jìn)行詳細(xì)討論。
Pulsar 的多層架構(gòu)影響到了其存儲(chǔ)數(shù)據(jù)的方式。Pulsar 將 topic 分區(qū)劃分為分片,然后將這些分片存儲(chǔ)在 Apache BookKeeper 的存儲(chǔ)節(jié)點(diǎn)上,以提高性能、可伸縮性和可用性。
Pulsar 的無(wú)限分布式日志以分片為中心,借助擴(kuò)展日志存儲(chǔ)(通過(guò) Apache BookKeeper)實(shí)現(xiàn),內(nèi)置分層存儲(chǔ)支持,因此分片可以均勻地分布在存儲(chǔ)節(jié)點(diǎn)上。由于與任一給定 topic 相關(guān)的數(shù)據(jù)都不會(huì)與特定存儲(chǔ)節(jié)點(diǎn)進(jìn)行捆綁,因此很容易替換存儲(chǔ)節(jié)點(diǎn)或縮擴(kuò)容。另外,集群中最小或最慢的節(jié)點(diǎn)也不會(huì)成為存儲(chǔ)或帶寬的短板。
Pulsar 的架構(gòu)無(wú)分區(qū),也沒(méi)有重平衡,保證了及時(shí)可伸縮性和高可用性。這兩個(gè)重要特性使 Pulsar 尤其適用于構(gòu)建與關(guān)鍵任務(wù)相關(guān)的服務(wù),如金融用例的計(jì)費(fèi)平臺(tái),電子商務(wù)和零售商的交易處理系統(tǒng),金融機(jī)構(gòu)的實(shí)時(shí)風(fēng)險(xiǎn)控制系統(tǒng)等。
通過(guò)利用性能強(qiáng)大的 Netty 架構(gòu),數(shù)據(jù)從 producers 到 broker,再到 bookie 的轉(zhuǎn)移都是零拷貝,都不會(huì)生成副本。這一特性對(duì)所有流用例都非常友好,因?yàn)閿?shù)據(jù)直接通過(guò)網(wǎng)絡(luò)或磁盤(pán)進(jìn)行傳輸,沒(méi)有任何性能損失。
Pulsar 的消費(fèi)模型采用了流拉取的方式。流拉取是長(zhǎng)輪詢的改進(jìn)版,不僅實(shí)現(xiàn)了單個(gè)調(diào)用和請(qǐng)求之間的零等待,還可以提供雙向消息流。通過(guò)流拉取模型,Pulsar 實(shí)現(xiàn)了比所有現(xiàn)有長(zhǎng)輪詢消息系統(tǒng)(如 Kafka)都低的端到端延遲。
在評(píng)估特定技術(shù)的操作簡(jiǎn)便性時(shí),不僅要考慮初始設(shè)置,還要考慮長(zhǎng)期維護(hù)和可伸縮性。需要考慮以下幾項(xiàng): - 要跟上業(yè)務(wù)增長(zhǎng)的速度,擴(kuò)展集群的操作是否迅速便捷? - 集群是否對(duì)多租戶(對(duì)應(yīng)于多團(tuán)隊(duì)、多用戶)開(kāi)箱可用? - 運(yùn)維任務(wù)(如替換硬件)是否會(huì)影響業(yè)務(wù)的可用性與可靠性? - 是否可以輕松復(fù)制數(shù)據(jù)以實(shí)現(xiàn)數(shù)據(jù)的地理冗余或不同的訪問(wèn)模式?
長(zhǎng)期使用 Kafka 的用戶會(huì)發(fā)現(xiàn)在運(yùn)維 Kafka 時(shí)上述問(wèn)題都不容易回答。其中多數(shù)任務(wù)都需要 Kafka 之外的其他工具,如用于管理集群再平衡的 cruise control,以及用于復(fù)制需求的 Kafka mirror-maker。
由于 Kafka 很難在團(tuán)隊(duì)之間共享,很多機(jī)構(gòu)開(kāi)發(fā)了用于支持和管理多個(gè)不同集群的工具。這些工具對(duì)成功大規(guī)模使用 Kafka 至關(guān)重要,但同時(shí)也增加了 Kafka 的復(fù)雜性。最適合用來(lái)管理 Kafka 集群的工具都是商業(yè)軟件,不開(kāi)源。那這就不意外了,囿于 Kafka 復(fù)雜的管理和運(yùn)維,許多企業(yè)轉(zhuǎn)而采買 Confluent 的商業(yè)服務(wù)。
相比之下,Pulsar 的目標(biāo)是簡(jiǎn)化運(yùn)維和可擴(kuò)展。根據(jù) Pulsar 的性能,我們對(duì)以上問(wèn)題作出如下回答:
要跟上業(yè)務(wù)增長(zhǎng)的速度,擴(kuò)展集群的操作是否迅速便捷?
Pulsar 的自動(dòng)負(fù)載均衡功能可以自動(dòng)并立即使用集群中新加的計(jì)算和存儲(chǔ)能力。這使得 broker 之間可以遷移 topic 來(lái)平衡負(fù)載,新 bookie 節(jié)點(diǎn)可以立即接受新數(shù)據(jù)分片的寫(xiě)入流量,而無(wú)需手動(dòng)重新平衡或管理 broker。
集群是否對(duì)多租戶(對(duì)應(yīng)于多團(tuán)隊(duì)、多用戶)開(kāi)箱可用?
Pulsar 采用分層架構(gòu),租戶和命名空間能夠與機(jī)構(gòu)或團(tuán)隊(duì)形成良好的邏輯映射,Pulsar 通過(guò)這種相同的機(jī)構(gòu)支持簡(jiǎn)易 ACL、配額、自主服務(wù)控制,甚至也支持資源隔離,從而允許集群使用者輕松管理共享集群。
運(yùn)維任務(wù)(如替換硬件)是否會(huì)影響業(yè)務(wù)的可用性與可靠性?
替換 Pulsar 的無(wú)狀態(tài) broker 操作簡(jiǎn)單,無(wú)需擔(dān)心數(shù)據(jù)丟失。Bookie 節(jié)點(diǎn)會(huì)自動(dòng)復(fù)制全部未復(fù)制的數(shù)據(jù)分片,而且用于解除和替換節(jié)點(diǎn)的工具為內(nèi)置工具,很容易實(shí)現(xiàn)自動(dòng)化。
是否可以輕松復(fù)制數(shù)據(jù)以實(shí)現(xiàn)數(shù)據(jù)的地理冗余或不同的訪問(wèn)模式?
Pulsar 具有內(nèi)置的復(fù)制功能,可用于無(wú)縫跨越地理區(qū)域同步數(shù)據(jù)或復(fù)制數(shù)據(jù)到其他集群,以實(shí)現(xiàn)其他功能(如災(zāi)備、分析等)。
相比于 Kafka,Pulsar 的特性為流數(shù)據(jù)的現(xiàn)實(shí)問(wèn)題提供了更完整的解決方案。從這個(gè)角度看,Pulsar 擁有更完善的核心功能集,使用簡(jiǎn)單,因而允許使用者和開(kāi)發(fā)者專注于業(yè)務(wù)的核心需求。
由于 Pulsar 是一項(xiàng)比 Kafka 更新的技術(shù),其生態(tài)系統(tǒng)還不夠完善,文檔和培訓(xùn)資源也仍在補(bǔ)充中。但是,這也正是在過(guò)去一年半的時(shí)間里,Pulsar 的主要發(fā)展方向。以下為一些主要成果:
Pulsar Summit Virtual Conference 2020,Pulsar 的首次全球峰會(huì) ,來(lái)自超過(guò) 25 個(gè)機(jī)構(gòu)的演講者共計(jì)進(jìn)行了 36 次分享,注冊(cè)參會(huì)者超過(guò) 600 人。
2020 年已原創(chuàng) 50+ 視頻及培訓(xùn)版塊。
Pulsar 每周直播及互動(dòng)教程。
業(yè)內(nèi)領(lǐng)先講師進(jìn)行專業(yè)培訓(xùn)。
與戰(zhàn)略商業(yè)伙伴每月舉辦一次網(wǎng)絡(luò)研討會(huì)。
發(fā)布涂鴉、OVHCloud、騰訊、Yahoo!Japan 等用例的白皮書(shū)。
更多關(guān)于 Pulsar 文檔和培訓(xùn)的內(nèi)容,參閱 StreamNative 的 Resources 網(wǎng)站。
Kafka 和 Pulsar 都可以提供企業(yè)級(jí)支持。多個(gè)大型供應(yīng)商(包括 Confluent)為 Kafka 提供了企業(yè)級(jí)支持。StreamNative為 Pulsar 提供了企業(yè)級(jí)支持,但 StreamNative 仍在起步發(fā)展階段。StreamNative 為企業(yè)提供全面托管的 Pulsar 云端服務(wù)及 Pulsar 企業(yè)級(jí)支持服務(wù)。
StreamNative 團(tuán)隊(duì)在消息和事件流方面經(jīng)驗(yàn)豐富,成長(zhǎng)迅速。StreamNative 由 Pulsar 和 BookKeeper 核心成員創(chuàng)建。在 StreamNative 團(tuán)隊(duì)的幫助下,Pulsar 生態(tài)系統(tǒng)在短短幾年時(shí)間里突飛猛進(jìn),如得到了戰(zhàn)略合作伙伴的支持,這種支持將會(huì)進(jìn)一步促進(jìn) Pulsar 的發(fā)展,以滿足大量用例的需求(這部分內(nèi)容將在下篇文章中詳細(xì)介紹)。
Pulsar 最近的重大進(jìn)展如 KoP(即 Kafka-on-Pulsar),由 OVHCloud 和 StreamNative 于 2020 年 3 月推出。通過(guò)向現(xiàn)有 Pulsar 集群添加 KoP 協(xié)議處理程序,用戶可以將現(xiàn)有的 Kafka 應(yīng)用程序和服務(wù)遷移到 Pulsar,而無(wú)需修改代碼。在 2020 年 6 月,中國(guó)移動(dòng)與 StreamNative 宣布推出另一重要產(chǎn)品 —— AoP(即 AMQP on Pulsar)。AoP 使得 RabbitMQ 應(yīng)用程序可以利用 Pulsar 的特性,如使用 Apache BookKeeper 和分層存儲(chǔ)支持無(wú)限事件流存儲(chǔ)等。這部分內(nèi)容會(huì)在下篇中詳細(xì)介紹。
隨著 Pulsar 用戶迅速增加,Pulsar 社區(qū)已經(jīng)發(fā)展成為大型、高度參與、用戶全球化的社區(qū)。Pulsar 生態(tài)系統(tǒng)中周邊工具插件數(shù)量迅速增長(zhǎng),活躍的 Pulsar 社區(qū)起到了極其重要的推動(dòng)作用。在過(guò)去的六個(gè)月里,Pulsar 生態(tài)系統(tǒng)中官方支持的 connector 數(shù)量急劇增長(zhǎng)。
為了進(jìn)一步支持 Pulsar 社區(qū)的發(fā)展,StreamNative 不久前推出了 StreamNative Hub。StreamNative Hub 支持用戶查找、下載集成。這一平臺(tái)將有助于加速 Pulsar connector 和插件生態(tài)系統(tǒng)的發(fā)展。
Pulsar 社區(qū)也一直在積極地與其他社區(qū)密切合作,以整合雙方的項(xiàng)目。例如,Pulsar 社區(qū)與 Flink 社區(qū)一直在共同開(kāi)發(fā) Pulsar-Flink Connector (FLIP-72 的一部分)。通過(guò) Pulsar-Spark Connector,用戶可以使用 Apache Spark 處理 Apache Pulsar 中的處理事件。SkyWalking Pulsar 插件集成了 Apache SkyWalking 和 Apache Pulsar,允許用戶通過(guò) SkyWalking 追蹤消息。除此之外,Pulsar 社區(qū)還有很多正在進(jìn)行中的集成項(xiàng)目。
Pulsar 目前官方支持 7 種語(yǔ)言,而 Kafka 只支持 1 種語(yǔ)言。Confluent 博客指出 Kafka 目前支持 22 種語(yǔ)言,但是,官方客戶端并不能支持這么多種語(yǔ)言,而且一些語(yǔ)言已經(jīng)不再維護(hù)。根據(jù)最新統(tǒng)計(jì),Apache Kafka 官方客戶端只支持 1 種語(yǔ)言,而 Apache Pulsar 官方客戶端支持 7 種語(yǔ)言。 - Java - C - C++ - Python - Go - .NET - Node
Pulsar 還支持由 Pulsar 社區(qū)開(kāi)發(fā)的諸多客戶端,如: - Rust - Scala - Ruby - Erlang
Pulsar 和 Kafka 都被廣泛用于多個(gè)企業(yè)用例,也各有優(yōu)勢(shì),都能通過(guò)數(shù)量基本相同的硬件處理大流量。部分用戶誤以為 Pulsar 使用了更多的組件,因此需要更多的服務(wù)器來(lái)實(shí)現(xiàn)與 Kafka 相匹敵的性能。雖然這種想法的確適用于一些特定硬件配置,但 在多數(shù)同等資源配置中,Pulsar 優(yōu)勢(shì)更加明顯,可以以相同的資源實(shí)現(xiàn)更多性能。
舉例來(lái)說(shuō),Splunk 最近分享了他們選擇 Pulsar 而非 Kafka 的原因,其中提到由于分層架構(gòu),Pulsar 幫助他們將成本降低了 1.5 - 2 倍,延遲降低了 5 - 50 倍,運(yùn)營(yíng)成本降低 2 -3 倍(幻燈片第 34 頁(yè))。Splunk 團(tuán)隊(duì)發(fā)現(xiàn)這是因?yàn)?Pulsar 可以更好地利用磁盤(pán) IO,降低 CPU 利用率,同時(shí)更好地控制內(nèi)存。
騰訊等公司選擇 Pulsar 在很大程度上是因?yàn)?Pulsar 的性能屬性。在騰訊計(jì)費(fèi)平臺(tái)白皮書(shū)中提到,騰訊計(jì)費(fèi)平臺(tái)擁有百萬(wàn)級(jí)用戶,管理約 300 億第三方托管賬戶,目前正在使用 Pulsar 處理每天數(shù)億美元的交易??紤]到 Pulsar 可預(yù)測(cè)的低延遲、更強(qiáng)的一致性和持久性保證,騰訊選擇了 Pulsar 而非 Kafka。
Apache Pulsar 支持四種不同訂閱模式。單個(gè)應(yīng)用程序的訂閱模式由排序和消費(fèi)可擴(kuò)展性需求決定。以下為這四種訂閱模式及相關(guān)的排序保證:
獨(dú)占和災(zāi)備訂閱模式都在分區(qū)級(jí)別支持強(qiáng)排序保證,支持跨 consumer 并行消費(fèi)同一 topic 上的消息。
共享訂閱模式支持將 consumer 的數(shù)量擴(kuò)展至超過(guò)分區(qū)的數(shù)量,因此這種模式非常適合 worker 隊(duì)列用例。
鍵共享訂閱模式結(jié)合了其他訂閱模式的優(yōu)點(diǎn),支持將 consumer 的數(shù)量擴(kuò)展至超過(guò)分區(qū)的數(shù)量,也支持鍵級(jí)別的強(qiáng)排序保證。
更多關(guān)于 Pulsar 訂閱模式和相關(guān)排序保證的信息,參閱訂閱。
Pulsar 和 Kafka 對(duì)于內(nèi)置流處理的目標(biāo)不盡相同。針對(duì)較為復(fù)雜的流處理需求,Pulsar 集成了 Flink 和 Spark 這兩個(gè)成熟的流處理框架,并開(kāi)發(fā)了 Pulsar Functions 來(lái)處理輕量級(jí)計(jì)算。Kafka 則開(kāi)發(fā)并使用 Kafka Streams 這一成熟的流處理引擎。
但是,使用 Kafka Streams 要更復(fù)雜一些。用戶需要弄清楚使用 KStreams 應(yīng)用程序的場(chǎng)景及方法。并且,對(duì)于大多數(shù)輕量級(jí)計(jì)算用例來(lái)說(shuō),KStreams 過(guò)于復(fù)雜。
另外,Pulsar Functions 輕松實(shí)現(xiàn)了輕量級(jí)計(jì)算用例,并允許用戶創(chuàng)建復(fù)雜的處理邏輯,而無(wú)需部署單獨(dú)的臨近系統(tǒng)。Pulsar Functions 還支持原生語(yǔ)言和易于使用的 API。用戶不必學(xué)習(xí)復(fù)雜的 API 就可以編寫(xiě)事件流應(yīng)用程序。
一份最近提交的 Pulsar 改進(jìn)方案(Pulsar Improvement Proposal,PIP)中介紹了 Function Mesh。Function Mesh 是無(wú)服務(wù)器架構(gòu)的事件流框架,結(jié)合使用多個(gè) Pulsar Functions 以便于構(gòu)建復(fù)雜的事件流應(yīng)用程序。
目前,Pulsar 通過(guò) broker 端去重支持 exactly-once producer。這個(gè)重大項(xiàng)目正在開(kāi)發(fā)中,敬請(qǐng)期待!
Pulsar 自 PIP-31 起支持事務(wù)型消息流,目前仍在開(kāi)發(fā)中。這一特性提高了 Pulsar 的消息傳遞語(yǔ)義和處理保證。在交易型流中,每條消息只會(huì)寫(xiě)入一次、處理一次,即便 broker 或 Function 實(shí)例出現(xiàn)故障,也不會(huì)出現(xiàn)數(shù)據(jù)重復(fù)或數(shù)據(jù)丟失。交易型消息不僅簡(jiǎn)化了使用 Pulsar 或 Pulsar Functions 向應(yīng)用程序?qū)懭氲牟僮?,還擴(kuò)展了 Pulsar 支持的用例的范圍。關(guān)于 Pulsar 這一特性的開(kāi)發(fā)進(jìn)展順利,將會(huì)在 Pulsar 2.7.0 版本中發(fā)布,預(yù)計(jì)發(fā)布時(shí)間 2020 年 9 月。
Pulsar 旨在支持用戶消費(fèi)數(shù)據(jù)。應(yīng)用程序可以需要選擇使用原始數(shù)據(jù)或壓縮數(shù)據(jù)。Pulsar 通過(guò)這種按需選擇的方式,允許未壓縮數(shù)據(jù)通過(guò)保留策略控制無(wú)限制增長(zhǎng),但仍允許通過(guò)周期性壓縮生成最新的實(shí)物化視圖。內(nèi)置的分層存儲(chǔ)特性支持 Pulsar 從 BookKeeper 卸載未壓縮數(shù)據(jù)到云存儲(chǔ)中,因而降低長(zhǎng)期存儲(chǔ)事件的成本。
相比于 Pulsar,Kafka 不支持用戶使用原始數(shù)據(jù)。并且,在數(shù)據(jù)壓縮后,Kafka 會(huì)立即刪除原始數(shù)據(jù)。
雅虎最初開(kāi)發(fā) Pulsar 將其同時(shí)用作發(fā)布/訂閱消息的平臺(tái)(又稱云消息)。但是,Pulsar 現(xiàn)在不僅是一個(gè)消息平臺(tái),還是統(tǒng)一的消息和事件流平臺(tái)。Pulsar 引入了一系列工具,作為平臺(tái)的一部分,為構(gòu)建事件流應(yīng)用程序提供必要的基礎(chǔ)。Pulsar 支持以下事件流功能:
無(wú)限事件流存儲(chǔ)支持通過(guò)向外擴(kuò)展日志存儲(chǔ)(通過(guò) Apache BookKeeper)大規(guī)模存儲(chǔ)事件,并且 Pulsar 內(nèi)置的分層存儲(chǔ)支持高質(zhì)量、低成本的系統(tǒng),如 S3、HDFS 等。
統(tǒng)一的發(fā)布/訂閱消息模型支持用戶輕易地向應(yīng)用程序中添加消息。這一模型可以根據(jù)流量和用戶需求進(jìn)行伸縮。
協(xié)議處理框架、Pulsar 與 Kafka 的協(xié)議兼容性(通過(guò) Kafka-on-Pulsar,KoP),以及 AMQP(通過(guò) AMQP-on-Pulsar)支持應(yīng)用程序使用任一現(xiàn)有協(xié)議在任一位置生產(chǎn)和消費(fèi)事件。
Pulsar IO提供了一組與大型生態(tài)系統(tǒng)集成的 connector,允許用戶從外部系統(tǒng)獲取數(shù)據(jù),而無(wú)需編寫(xiě)代碼。
Pulsar 與 Flink 的集成支持全面的事件處理。
Pulsar Functions提供了一個(gè)輕量級(jí)無(wú)服務(wù)器框架來(lái)處理到達(dá)的事件。
Pulsar 與 Presto 的集成(Pulsar SQL)支持?jǐn)?shù)據(jù)專家和用戶使用 ANSI 兼容的 SQL 來(lái)分析數(shù)據(jù)和處理業(yè)務(wù)。
通過(guò) Pulsar IO、Pulsar Functions、Pulsar Protocol Handler,Pulsar 具有全面路由的功能。Pulsar 的路由功能包括基于內(nèi)容的路由、消息轉(zhuǎn)換,和消息擴(kuò)充。
和 Kafka 相比,Pulsar 的路由能力更穩(wěn)健。Pulsar 為 connector 和 Functions 提供了更靈活的部署模型。簡(jiǎn)易的部署可以在 broker 中運(yùn)行。另外,部署也可以在專用的節(jié)點(diǎn)池中運(yùn)行(類似于 Kafka Streams),節(jié)點(diǎn)池支持大規(guī)模擴(kuò)展。Pulsar 還與 Kubernetes 原生集成。另外,可以將 Pulsar 配置為以 pod 的形式來(lái)調(diào)度 Functions 和 connector 的工作負(fù)載,充分利用 Kubernetes 的彈性。
如前文所述,Pulsar 最初的開(kāi)發(fā)目的是作為統(tǒng)一的消息發(fā)布/訂閱平臺(tái)。Pulsar 團(tuán)隊(duì)深入了解了現(xiàn)有開(kāi)源消息系統(tǒng)的優(yōu)缺點(diǎn),并基于團(tuán)隊(duì)的經(jīng)驗(yàn)設(shè)計(jì)了 Pulsar 的統(tǒng)一消息模型。Pulsar 消息 API 同時(shí)支持隊(duì)列和流。不僅可以實(shí)現(xiàn) worker 隊(duì)列,以輪詢的方式將消息發(fā)送給相互競(jìng)爭(zhēng)的 consumer(通過(guò)共享訂閱),還可以通過(guò)兩種方式支持事件流:一是基于分區(qū)(通過(guò)災(zāi)備訂閱)中消息的順序;二是基于鍵范圍(通過(guò)鍵共享訂閱)中消息的順序。用戶可以在同一組數(shù)據(jù)上構(gòu)建消息應(yīng)用程序和事件流應(yīng)用程序,而無(wú)需復(fù)制數(shù)據(jù)到不同數(shù)據(jù)系統(tǒng)。
另外,Pulsar 社區(qū)還在嘗試使 Apache Pulsar 可以原生支持不同的消息協(xié)議(如 AoP、KoP),以擴(kuò)展 Pulsar 的功能。
到此,關(guān)于“Pulsar與Kafka有哪些區(qū)別”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!