Flink未來將與 Pulsar集成提供大規模的彈性數據處理
問題導讀
1.什么是Pulsar?
2.Pulsar都有哪些概念?
3.Pulsar有什么特點?
4.Flink未來如何與Pulsar整合?
Apache Flink和Apache Pulsar的開源數據技術框架可以以不同的方式集成,以提供大規模的彈性數據處理。在這篇文章中,我將簡要介紹Pulsar及其與其他消息傳遞系統的差異化元素,并描述Pulsar和Flink可以協同工作的方式,為大規模彈性數據處理提供無縫的開發人員體驗。
Pulsar簡介
Apache Pulsar是一個開源的分布式pub-sub消息系統,由Apache Software Foundation管理。Pulsar是一種用于服務器到服務器消息傳遞的多租戶,高性能解決方案,包括多個功能,例如Pulsar實例中對多個集群的本地支持,跨集群的消息的無縫geo-replication,非常低的發布和端到端 - 延遲,超過一百萬個主題的無縫可擴展性,以及由Apache BookKeeper等提供的持久消息存儲保證消息傳遞。現在讓我們討論Pulsar和其它pub-sub消息傳遞框架之間的主要區別:
第一個差異化因素源于這樣一個事實:雖然Pulsar提供了靈活的pub-sub消息傳遞系統,但它也有持久的日志存儲支持 - 因此在一個框架下結合了消息傳遞和存儲。由于采用了分層架構,Pulsar提供即時故障恢復,獨立可擴展性和無平衡的集群擴展。
Pulsar的架構遵循與其他pub-sub系統類似的模式,因為框架在主題中被組織為主要數據實體,生產者向主體發送數據,消費者從主題(topic)接收數據,如下圖所示。

Topic是Pulsar的核心概念,表示一個“channel”,Producer可以寫入數據,Consumer從中消費數據(Kafka、RocketMQ都是這樣)。
Topic名稱的URL類似如下的結構:
{persistent|non-persistent}://tenant/namespace/topic
persistent|non-persistent表示數據是否持久化(Pulsar支持消息持久化和非持久化兩種模式)
Tenant為租戶
Namespace一般聚合一系列相關的Topic,一個租戶下可以有多個Namespace
Pulsar的第二個區別是該框架是從一開始就考慮多租戶而構建的。這意味著每個Pulsar主題都有一個分層的管理結構,使得資源的分配以及團隊之間的資源管理和協調變得高效和容易。借助Pulsar的多租戶結構,數據平臺維護人員可以在沒有摩擦的情況下加入新團隊,因為Pulsar在屬性(租戶),命名空間或主題級別提供資源隔離,同時數據可以在集群中共享以便于協作和 協調。
下圖中Property即為租戶,每個租戶下可以有多個Namespace,每個Namespace下有多個Topic。
Namespace是Pulsar中的操作單元,包括Topic是配置在Namespace級別的,包括多地域復制,消息過期策略等都是配置在Namespace上的。

最后,Pulsar靈活的消息傳遞框架統一了流式和排隊數據消費模型,并提供了更大的靈活性。如下圖所示,Pulsar保存主題中的數據,而多個團隊可以根據其工作負載和數據消耗模式獨立使用數據。

Pulsar提供了靈活的消息模型,支持三種訂閱類型:
Exclusive subscription:排他的,只能有一個Consumer,接收一個Topic所有的消息
Shared subscription:共享的,可以同時存在多個Consumer,每個Consumer處理Topic中一部消息(Shared模型是不保證消息順序的,Consumer數量可以超過分區的數量)
Failover subscription:Failover模式,同一時刻只有一個有效的Consumer,其余的Consumer作為備用節點,在Master Consumer不可用后進行替代(看起來適用于數據量小,且解決單點故障的場景)
Pulsar對數據的看法:分段數據流
Apache Flink是一個流優先計算框架,它將批處理視為流的特殊情況。Flink對數據流的看法區分了有界和無界數據流之間的批處理和流處理,假設對于批處理工作負載,數據流是有限的,具有開始和結束。
對于數據層,Apache Pulsar與Apache Flink的觀點相似。該框架還使用流作為所有數據的統一視圖,而其分層體系結構允許傳統的pub-sub消息傳遞用于流式工作負載和連續數據處理或分段流的使用以及批量和靜態工作負載的有界數據流。

使用Pulsar,一旦生產者向主題(topic)發送數據,它就會根據數據流量進行分區,然后在這些分區下進一步細分 - 使用Apache Bookkeeper作為分段存儲 - 以允許并行數據處理,如下圖所示。這允許在一個框架中組合傳統的pub-sub消息傳遞和分布式并行計算。

當Flink + Pulsar整合
Apache Flink和Apache Pulsar已經以多種方式集成。在接下來的部分中,我將介紹框架之間的一些潛在的未來集成,并分享可以一起使用框架的現有方法的示例。
請輸入評論內容...
請輸入評論/評論長度6~500個字
最新活動更多
-
11月7日立即參評>> 【評選】維科杯·OFweek 2025(第十屆)物聯網行業年度評選
-
11月20日立即報名>> 【免費下載】RISC-V芯片發展現狀與測試挑戰-白皮書
-
即日-11.25立即下載>>> 費斯托白皮書《柔性:汽車生產未來的關鍵》
-
11月27日立即報名>> 【工程師系列】汽車電子技術在線大會
-
11月28日立即下載>> 【白皮書】精準洞察 無線掌控——283FC智能自檢萬用表
-
12月18日立即報名>> 【線下會議】OFweek 2025(第十屆)物聯網產業大會


分享













