脈沖星 8 月脈動 | Pulsar 2.5.0 功能預覽,StreamNative 即將開源 Pulsar Manager

脈沖星8月脈動.png

閱讀本文需要約 11 分鐘。

本月看點速覽

  • 產(chǎn)品動態(tài)

    • Apache Pulsar 2.5.0 功能預覽

    • Apache Pulsar 2.4.1 功能預覽

  • 社區(qū)動態(tài)

    • Apache Pulsar Meetup 北京站完美落幕

    • StreamNative 即將開源 Apache Pulsar Manager

    • StreamNative 引入 KoP 連接 Kafka 生態(tài)

    • Apache Pulsar 融合大數(shù)據(jù)周邊生態(tài)

    • StreamNative 成為 Flink Forward Berlin 首家 Startup Sponsor

    • Apache Pulsar 在全球舉辦多場 Meetup

  • 技術(shù)干貨

    • 用戶案例(騰訊、雅虎和 EMQ)

    • 技術(shù)博客(Pulsar IO connector 系列和 Pulsar Flink connector 等)

產(chǎn)品動態(tài)

整個 8 月,Pulsar 2.5.0 版本和 2.4.1 版本的開發(fā)在緊張有序地進行,以下是本月的新增功能和改進提高。

Apache Pulsar 2.5.0 功能預覽

新增功能

PIP 39: Namespace Change Events

Pulsar 是一個多租戶事件流系統(tǒng),管理員可以通過在不同級別設(shè)置策略來管理租戶和命名空間,retention、存儲配額等策略只能在命名空間級別設(shè)置。 在許多用例中,用戶希望能在 topic 級別配置相關(guān)策略。 Pulsar 2.5.0 支持用戶在 topic 級別配置相關(guān)策略。

更多信息,參閱 PIP-39。

PIP 31:事務支持

目前,Pulsar 通過 Idempotent Producer 支持在單個 partition 中的 exactly-once 語義。Idempotent Producer 保證 Producer 發(fā)送的消息在不丟失的情況下僅會被持久化一次。但是,當 Producer 發(fā)送消息到多個 partition 時,不能保證消息發(fā)送的原子性。同樣,Pulsar Functions 在處理多個事件或者輸出一組結(jié)果到不同 topic partition 時,不能保證計算的原子性。PIP-31 通過增加對事務的支持來解決上述場景面臨的問題。Pulsar 2.5.0 提供事務支持。

更多信息,參閱 PIP-31。

改進提高

Broker

  • 用戶設(shè)置 autoSkipNonRecoverableData時,如果 ledger 中的數(shù)據(jù)被刪除,機器可以自動回復 cursor 的配置。但是 Expiry-monitor 并不會使用該標志,這就導致在清理過期的消息時,如果遇到 managed-ledger 相關(guān)異常時,程序會被 blocked。在 Pulsar 2.5.0 中, 啟用 autoSkipNonRecoverableData 標志時,Expiry-monitor 可以跳過不可恢復的 managed-ledger 異常(例如,data/ledger 不再存在)。

    更多信息,參閱 PR-4818。

Schema

  • 當前 KeyValue 的 schema 不支持使用 AUTO_CONSUME,在 Pulsar 2.5.0 中重構(gòu)了 Schema 接口,支持在訂閱之前獲取 AutoConsumeSchemaKeyValueSchema 的 Schema 信息。

    更多信息,參閱 PR-4839。

  • 為 Schema 添加新的 Restful API 接口:

    • getAllVersions: 對于給定的 topic,返回 Schema version 的列表。

    • testCompatibility : 支持在不注冊 Schema 的情況下測試其兼容性。

    • getVersionBySchema: 支持通過 Schema 定義找到 Schema 對應的版本。

    更多信息,參閱 PR-4800。

Client

  • 為 Pulsar-client-cpp 中 batch 場景下的 producer 提供一種方便的方式來獲取 send 的 callback 信息。

更多信息,參閱 PR-4885

  • 在 ConsumerImpl中,將 getLastMessageId 對外暴漏給用戶使用。

    更多信息,參閱 PR-4911。

SQL

  • 在 Pulsar SQL 中增加 checkstyle 插件,檢查并修復之前代碼模塊中的格式錯誤。

    更多信息,參閱 PR-4882。

  • 在 Pulsar SQL 中顯示 table 的列表時將返回 partitioned topic 的 name 信息,當與某些 UI 工具集成時,無法選擇具體的 partitioned topic。在 Pulsar 2.5.0 中,將 partitioned topic 的 name 作為 Pulsar SQL 表中的內(nèi)部列,允許用戶根據(jù)指定的 partition 信息獲取 partition 相關(guān)的數(shù)據(jù)。

    更多信息,參閱 PR-4888。

Function

  • 在當前版本中,運行 Pulsar Functions、source 和 sink 時,資源的 requestslimits 被設(shè)置為同一個值,這本身并無問題,但在集群模式下,資源的實際利用率略低。為了提高資源的實際利用率,在 function-worker.yml 中新增了 cpuOverCommitRatiomemoryOverCommitRatio 配置項,允許用戶靈活配置具體資源的使用率情況。

更多信息,參閱 PR-4829。

Pulsar-Kafka

  • 目前,pulsar-kafka 的適配器使用 Kafka 0.10.x 版本。為了使低版本的用戶快捷地遷移至 Pulsar,Pulsar 2.5.0 的 pulsar-kafka 適配器將同時支持 kafka-api-version 0.9.Xkafka-api-version 0.8.X 版本。

更多信息,參閱 PR-4886PR-4797。

Apache Pulsar 2.4.1 功能預覽

改進提高

Broker

  • 在 Broker 中,lastPosition 會在重啟 manageLedger 時進行更新。如果創(chuàng)建一個空 Ledger,之后不重啟 manageLedger,此時,當用戶新建一個 consumer 或 producer,會再產(chǎn)生一個 Ledger,lastPosition 會指向前面空的 Ledger,而 firstPosition 會指向新的 Ledger,導致 firstPositionlastPosition 靠前。

    更多信息,參閱 PR-4853。

  • 修復了 uninitializedCursorsManagedLedgerImpl.asyncOpenCursor 中并發(fā)訪問的問題。

    更多信息,參閱 PR-4837

Schema

  • 修復了 GetSchema() 在請求中沒有 schema version 的處理邏輯,Pulsar 2.4.1 將 GetSchemaResponse 返回至 client。

    更多信息,參閱 PR-4975。

  • StructSchema LoadingCache 用于緩存讀取器,但其對應的 key 為 byte[] 類型,它將與地址的哈希碼進行比較。因此,每個解碼都會生成一個新的讀取器。 Pulsar 2.4.1 更改了 LoadingCache 的密鑰類型,修復了該問題。

更多信息,參閱 PR-4962。

  • 在 pulsar-sql 的使用場景下,當 Pulsar 往 schema registry 中存儲 byte[] 類型的 schema 時,可能會報錯。導致該問題的原因是當某一 topic 未被指定具體的 schema 時,沒有處理 not found schema 異常。Pulsar 2.4.1 修復了該問題,并在未指定具體 schema 類型時,使用默認的 schema 類型。

    更多信息,參閱 PR-4890。

Client

  • 為了保留已經(jīng) Ack 的數(shù)據(jù),Pulsar 提供了相應的 Retention 策略,用戶能根據(jù)需求進行配置。默認情況下,retention size 的值為 0,這表示需要保存消息的大小無限大,但是這個行為并未生效,Pulsar 2.4.1 修復了該問題。

    更多信息,參閱 PR-4825。

  • Producer 與 consumer 的攔截器功能只 catch 了相關(guān)的異常信息,并沒有 catch 相關(guān)的 error 信息,Pulsar 2.4.1 修復了該問題。

    更多信息,參閱 PR-4860。

  • 在 CPP client 的 BatchMessageTest 測試場景中,不支持獲取指定的錯誤返回類型。Pulsar 2.4.1 添加了新的方法 producerFailMessages,允許返回指定的錯誤類型。

    更多信息,參閱 PR-4873。

  • 用戶能創(chuàng)建只有 1 個 partition 的 partition topic,但在 Pulsar Client 中該行為無法正常工作。Pulsar 2.4.1 修復了該問題,確保用戶可以創(chuàng)建只有一個 partition 的 partition topic。

    更多信息,參閱 PR-4883PR-5016。

  • 在 Java Client 中,用戶啟用 batch 功能時,在 message 中無法獲取到 replicator_to 字段。Pulsar 2.4.1 將 replicator_to 字段添加到 message 中,確保用戶可以獲取到相關(guān)的信息。

    更多信息,參閱 PR-4930。

  • Pulsar 使用的 jackson-databind 版本存在安全漏洞。Pulsar 2.4.1 將 jackson-databind 版本升級到 2.9.9.3。

    更多信息,參閱 PR-5011

  • Pulsar-client-cpp 中的 snappy 壓縮器在編譯時會出現(xiàn) raise undeclared identifier 相關(guān)錯誤。Pulsar 2.4.1 修復該問題并確保 snappy 壓縮器可以正確地工作。

    更多信息,參閱 PR-4972。

Connector

  • JDBC sink 所有操作會指定具體的 action 是屬于哪種操作,包括insert、delete 和 update。Pulsar 2.4.1 為 action 設(shè)置了默認的處理行為。如果不顯式指定,action 的操作默認作為 INSERT。

    更多信息,參閱 PR-4862。

Function

  • 在 Pulsar Functions 中,對于像使用 KubernetesRuntime 這類的外部 runtime 管理器,當將某些 Function 實例從一臺機器遷移到另一臺機器時,F(xiàn)unction 需要重新初始化 GRPC 類似的內(nèi)容,否則 Pulsar Function 無法正常工作。

    更多信息,參閱 PR-5007。

  • Pulsar Functions 的 jar 支持兩種形式:用戶手動上傳或從 Bookkeeper 通過 URL 的形式下載 Function 的 pkg。當前,使用 FunctionActioner 下載文件時,可能會造成文件描述符泄漏。Pulsar 2.4.1 修復了該問題。

    更多信息,參閱 PR-4970。

社區(qū)動態(tài)

本月,多方共同促進 Apache Pulsar 社區(qū)繁榮,Pulsar 發(fā)展勢不可擋。

Apache Pulsar Meetup 北京站完美落幕

2019 年 8 月 17 日, Apache Pulsar Meetup 在北京舉行,開啟了中國之旅第五站。本次 Meetup 由 StreamNative 主辦,聯(lián)合 Yahoo! Japan、Tencent、智聯(lián)招聘、EMQ 和 Apache Flink 社區(qū)等共同合作。

本次 Meetup 的內(nèi)容為:

  • Nozomi Kurihara:Apache Pulsar at Yahoo! Japan

  • 翟佳:Kafka on Pulsar (KoP)

  • 李鵬輝/叢搏:智聯(lián)招聘如何參與社區(qū)開發(fā)以及 Key_Shared 等近期貢獻特性詳解

  • 劉德志:Apache Pulsar 在騰訊計費場景下的實踐

  • 郭斯杰/張勇:Pulsar 2.5.0 事務功能預覽

  • 金發(fā)華:Apache Pulsar 在 EMQ 物聯(lián)網(wǎng)平臺產(chǎn)品 ActorCloud 上的應用

  • 唐云:監(jiān)控流系統(tǒng)中的 Flink 狀態(tài)管理

  • 申毅杰:Apache Pulsar 和與大數(shù)據(jù)生態(tài)的集成與實踐

更多信息,參閱 [Recap] Apache Pulsar Meetup 北京站。

StreamNative 即將開源 Apache Pulsar Manager

此前,StreamNative 和 Yahoo! Japan 各自研發(fā)了 Pulsar 管理工具。Apache Pulsar Meetup 北京站結(jié)束后,雙方進行了深入的技術(shù)交流和充分的探討,共同決定合并各自開發(fā)的 Pulsar 管理工具,并將在未來開源。這標志著 StreamNative 引領(lǐng)了 Pulsar 社區(qū)國際化合作共贏的新方向,并在推動 Pulsar 社區(qū)全球化發(fā)展的道路上又向前邁進了一大步。

StreamNative 引入 KoP 連接 Kafka 生態(tài)

StreamNative 開創(chuàng)性地研發(fā)了 KoP(Kafka on Pulsar),并在 Apache Pulsar Meetup 北京站上首次公開分享了 KoP 的研發(fā)進展與實施情況。

KoP 在 Pulsar 上原生支持 Kafka 協(xié)議,用戶可以使用 Pulsar 作為底層基礎(chǔ)設(shè)施,而無需修改基于 Kafka 的各種應用和服務。StreamNative 通過 KoP 幫助用戶不受應用遷移和重寫所困擾,高效便捷地幫助用戶解決了痛點問題,并開創(chuàng)性地連接了 Pulsar 和 Kafka 兩大開源社區(qū)**。StreamNative 秉承“開源、開放”的理念,積極促進 Pulsar 與多方開源社區(qū)的繁榮與發(fā)展。

Apache Pulsar 融合大數(shù)據(jù)周邊生態(tài)

StreamNatvie 長期致力于 Pulsar 與大數(shù)據(jù)周邊生態(tài)的融合,并積極反饋 Pulsar 社區(qū)。

StreamNative 融合 Apache Pulsar 與 Apache Flink

2019 年 8 月 12 日,Apache Pulsar & BookKeeper PMC 成員、StreamNative 聯(lián)合創(chuàng)始人郭斯杰受邀參加 Apache Flink Meetup(西雅圖站),發(fā)表了主題為《When Apache Pulsar Meets Apache Flink》演講。

Pulsar 是分片存儲的架構(gòu),F(xiàn)link 能在同一框架下處理批流工作負載。在大規(guī)模彈性數(shù)據(jù)處理的場景下,兩個開源框架可以融合集成,構(gòu)建實時流倉庫。

郭斯杰講述了 Pulsar 如何提供統(tǒng)一的數(shù)據(jù)層視圖、如何使用 Flink 統(tǒng)一的計算和彈性數(shù)據(jù)處理能力,并分享了 Pulsar 與 Flink 的最新融合進展(特別是 effectively-once 和 schema 方面的集成)。

更多信息,參閱 Pulsar 和 Flink 的批流融合。

另外,2019 年 8 月 31 日,StreamNative 的申毅杰博士將做客“2019 世界人工智能大會(WAIC)”,參加“大數(shù)據(jù) AI 開源生態(tài)”高端論壇,發(fā)表主題為《基于 Apache Pulsar 和 Apache Flink 進行批流一體的彈性數(shù)據(jù)處理》的演講。

更多關(guān)于此次論壇演講日程和嘉賓的信息,參閱 大數(shù)據(jù) AI 開源生態(tài)論壇-演講日程表。

近期,StreamNatvie 將開源與 Apache Flink 1.9 集成的 Apache Pulsar Connector,我們將第一時間公布最新進展,敬請期待。

StreamNative 融合 Apache Pulsar 與 Apache Spark

2019 年 7 月 9 日,StreamNatvie 開源了 Apache Pulsar Spark Connector,通過該 connector,用戶能從 Spark 讀取 Pulsar 數(shù)據(jù)和向 Pulsar 寫入 Spark 數(shù)據(jù)。

更多信息,參閱:

StreamNative 成為 Flink Forward Berlin 首家 Startup Sponsor

Apache Pulsar 社區(qū)欣欣向榮,發(fā)展穩(wěn)步向前,離不開各方的支持與幫助。StreamNative 作為 Pulsar 的主要倡導者,一直竭力推進 Pulsar 的發(fā)展,并積極促進 Pulsar 與其它開源社區(qū)的密切合作,受到業(yè)界高度關(guān)注和認可。

2018 年 8 月 1 日,F(xiàn)link Forward 官方宣布,StreamNative 正式成為 Flink Forward Europe 2019 首家 Startup Sponsor!StreamNative 成員將在今年 10 月赴往歐洲參加 Flink Forward Europe,繼續(xù)推進 Pulsar 與其它開源社區(qū)的發(fā)展。

更多信息,參閱 StreamNative 成為 Flink Forward Europe 2019 首家 Startup Sponsor。

Apache Pulsar 在全球舉辦多場 Meetup

  • 2019 年 8 月 21 日,Thor Sigurjonsson 在 Utah Data Engineering Meetup 發(fā)表了主題為《Messaging Fabric at Overstock.com Built with Apache Pulsar》演講。

    更多信息,參閱 Utah Data Engineering Meetup - Real Time。

  • 2019 年 8 月 27 日,Matti-Pekka Laaksonen 在 Apache Kafka Meetup 赫爾辛基站發(fā)表了主題為《Apache Pulsar and Real Time Infrastructure in Public Transport》演講。

    更多信息,參閱 Apache Kafka Meetup - Helsinki。

技術(shù)干貨

本月發(fā)布了多篇用戶案例和技術(shù)文檔。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容