關于 Apache Pulsar Apache Pulsar 是 Apache 軟體基金會頂級項目,是下一代雲原生分布式消息流平台,集消息、存儲、輕量化函數式計算為一體,采用計算與存儲分離架構設計,支援多租戶、持久化存儲、多機房跨區域資料複制,具有強一緻性、高吞吐、低延時及高可擴充性等流資料存儲特性。 GitHub 位址:http://github.com/apache/pulsar/ 作者資訊: 本月報由 StreamNative 團隊整理。
導語
各位小夥伴們,2020 年 12 月 Pulsar 社群月報來啦!首先給大家一個遲到的 2021 新年祝福!
本月 Pulsar 社群完善和更新很多産品細節,遍布方方面面。感謝以下各位社群成員本月對 Pulsar 項目的支援,讓 Apache Pulsar 繼續發光發熱!(排名不分先後,看看你有沒有上榜 ????????):
@jeames00、@congbobo184、@Renkai、@reswqa 、@lhotari、@codelipenghui、@jerrypeng、@eolivelli、@wolfstudy、@nodece、@erobot、@315157973、@gaoran10、@zymap、@eolivelli、@reswqa、@RobertIndie、@Gjiangtao、@erobot、 @mkozioro、@massakam、@k2la、@Renkai、 @Jennifer88huang、@tuteng、@zsh0139、@Huanli-Meng、@aahmed-se、@sijie、@sijia-w、@rathipry、@hangc0276、@BewareMyPower、@jianyun8023、@merlimat、@aloyszhang、@MarvinCai、@dockerzhang、@rdhabalia、@flowchartsman、@aloyszhang、@jerrypeng、@massakam、@sijie、@jiazhai、@cimura、@zzzming、@codelipenghui、@rdhabalia、@zymap、@saosir、@massakam、@dockerzhang、@Shoothzj、@eolivelli、@gaoran10、@milos-matijasevic、@k2la、@deonvdv、@wangjialing218、@astifter、@yufan022
産品動态
Function: 在 Go Function builder 中支援 key-based 批處理。
https://github.com/apache/pulsar/pull/8761
Function:為表示 function 狀态的 <code>openTable()</code> 調用添加逾時。
https://github.com/apache/pulsar/pull/9006
Function: 提供 Function worker 服務的接口。
https://github.com/apache/pulsar/pull/8560
Function:在 Function 中允許修改狀态不阻塞function運作。
https://github.com/apache/pulsar/pull/9005
Function: 使源 topic 的 schema 資訊可用于下遊 sinks。
https://github.com/apache/pulsar/pull/8854
Function: 在 Pulsar Functions 中添加 <code>--retain-key-ordering</code> 辨別。
https://github.com/apache/pulsar/pull/8886
Function: 支援通過配置 URL 擷取 Go 和 Python function。
https://github.com/apache/pulsar/pull/8808
Function Worker: 拆分 Function Worker 和用戶端的身份驗證邏輯。
https://github.com/apache/pulsar/pull/8824
Package management: 将包管理服務添加到 Pulsar 啟動程序中。
https://github.com/apache/pulsar/pull/8764
Package management: 包管理服務支援 BookKeeper 存儲。
https://github.com/apache/pulsar/pull/8744
Tiered storage: 初始化 offloader 時,隻初始化一次即可。
https://github.com/apache/pulsar/pull/8739
Test: pulsar-perf 支援多 consumer 訂閱。
https://github.com/apache/pulsar/pull/8837
Java Client: Java 用戶端支援設定 reader 的訂閱名。
https://github.com/apache/pulsar/pull/8801
Java Client: 實作 producer 記憶體限制。
https://github.com/apache/pulsar/pull/8965
Java Client: 支援 producer 的 WaitForExclusive 建立模式。
https://github.com/apache/pulsar/pull/8992
Schema: 為 SchemaInfoBuilder 中的屬性添加預設值。
https://github.com/apache/pulsar/pull/8952
KoP: 支援使用指定統計資料更新統計資料。
https://github.com/apache/pulsar/pull/8951
Websocket: 支援 WebSocket producer 的 <code>deliveryAt </code>和 <code>deliverAfter</code> 屬性。
https://github.com/apache/pulsar/pull/8945
WebSocket:根據 <code>PulsarClientException</code> 的類型傳回狀态代碼。
https://github.com/apache/pulsar/pull/9031
C++ Client: 為 reader 添加 consumer 配置,用于解密加密的消息。
https://github.com/apache/pulsar/pull/8905
C++ Client: C++ 用戶端支援為設定 reader 的内部訂閱名稱設定添加 setter。
https://github.com/apache/pulsar/pull/8823
C++: 優化批消息緩存配置設定。
https://github.com/apache/pulsar/pull/8749
C++:更正訂閱 API 的參數名稱。
https://github.com/apache/pulsar/pull/9037
Broker: 支援在 topic 級别配置每個 topic 的最大訂閱數。
https://github.com/apache/pulsar/pull/8948
Broker: 導出 messageTTL 的 Prometheus 名額。
https://github.com/apache/pulsar/pull/8871
Broker: 實作軟體包管理的管理者操作。
https://github.com/apache/pulsar/pull/8816
Broker: 引入輕量級 broker 中繼資料。
https://github.com/apache/pulsar/pull/8618
Broker: 添加用于包管理服務的 REST API。
https://github.com/apache/pulsar/pull/8858
Broker: 将軟體包管理服務添加到 Pulsar 啟動程序過程中。
Broker: 将 <code>getWebServiceUrl</code> 方法更改為異步。
https://github.com/apache/pulsar/pull/8746
Broker: 支援用戶端軟體包管理指令。
https://github.com/apache/pulsar/pull/8817
Broker:引入 Pulsar 的連續偏移量。
https://github.com/apache/pulsar/pull/9039
Broker:為 KoP 添加 <code>updateRates</code> 方法,采集釋出速率。
https://github.com/apache/pulsar/pull/9049
Broker:支援配置 Netty Acceptor 線程池大小。
https://github.com/apache/pulsar/pull/9061
Broker:支援檢視 broker entry 中繼資料。
https://github.com/apache/pulsar/pull/9067
Broker: 支援限制每個 namespace 的最大 topic 數量。
https://github.com/apache/pulsar/pull/8942
Broker: 暴露不連續的已删除消息的統計資料。
https://github.com/apache/pulsar/pull/8936
Broker: 添加 beforeSendMessage方法,在将 entry 發送給 consumer 之前攔截 entry。
https://github.com/apache/pulsar/pull/8932
Broker: 支援在 namespace 級别配置每個 topic 的最大訂閱數量。
https://github.com/apache/pulsar/pull/8924
Broker:改進 broker 不信任用戶端證書時的錯誤處理。
https://github.com/apache/pulsar/pull/8998
Broker:使 namespace 隔離政策更新及時生效。
https://github.com/apache/pulsar/pull/8976
Broker:為 <code>SubscriptionBusyException</code> 添加 if 分支。
https://github.com/apache/pulsar/pull/9017
Broker:删除重複的 broker Prometheus 名額類型。
https://github.com/apache/pulsar/pull/8995
Broker:添加原始 Prometheus 名額提供者。
https://github.com/apache/pulsar/pull/9021
Broker:支援 Pulsar-admin 自動重新整理證書。
https://github.com/apache/pulsar/pull/8831a
引入 Pulsar 的的連續偏移量。
Perf:pulsar-perf 支援從 conf 檔案加載 WebSocket 服務 URL。
https://github.com/apache/pulsar/pull/9000
SQL:為 SQL 測試添加重試。
https://github.com/apache/pulsar/pull/9010
Bug 修複
Broker: 使用新的線程删除非持久化訂閱,以避免在删除不活躍訂閱時出現死鎖。
https://github.com/apache/pulsar/pull/8820
Broker: 支援在删除給定 namespace 時删除其所有 topic。
https://github.com/apache/pulsar/pull/8806
Broker: 删除從不同線程中删除 topic 的非持久永久訂閱,進而避免在删除非活動訂閱時出現死鎖。
Broker: 修複了因無效的日志記錄配置導緻的性能問題。
https://github.com/apache/pulsar/pull/8908
Broker: 檢查消息到期時複制訂閱清單,避免死鎖。
https://github.com/apache/pulsar/pull/8877
Broker: 修複因消息保留而導緻空 topic 無法擷取 <code>lastMessageId</code> 的問題。
https://github.com/apache/pulsar/pull/8725
Broker: 修複 PersistentStickyKeyDispatcherMultipleConsumers 中的 NPE。
https://github.com/apache/pulsar/pull/8969
Broker: 清理無法從緩存中解除安裝的 topic。
https://github.com/apache/pulsar/pull/8968
Broker: 更新 Maven 工件版本。
https://github.com/apache/pulsar/pull/8966
Broker: 解決了中繼資料導緻的相容性的問題。
https://github.com/apache/pulsar/pull/8959
Broker: 修複了在沒有分發速率限制的情況下解除安裝 topic 後,訂閱的分發速率無法工作的問題。
https://github.com/apache/pulsar/pull/8947
Broker: 確定動态更新 rack 資訊。
https://github.com/apache/pulsar/pull/8844
Broker: 修複 Pulsar broker 中項目的格式錯誤。
https://github.com/apache/pulsar/pull/8933
Broker:修複 DelayedDelivery 在 broker 層級有一個預設值的問題。
https://github.com/apache/pulsar/pull/9030
Function: 修複添加到使用者配置中的單引号的問題。
https://github.com/apache/pulsar/pull/8780
Function: 修複了 Go Function 丢棄消息觸發的 panic。
https://github.com/apache/pulsar/pull/8776
C++ Client: 修複 <code>BlockingQueue</code> 中的競态條件。
https://github.com/apache/pulsar/pull/8765
Schema: <code>GenericJsonReader</code> 将空值轉換為字元串“null”。
https://github.com/apache/pulsar/pull/8883
Java Client: 修複當 Pulsar 用戶端收到來自已關閉 producer 釋出的消息确認時出現的 NPE 問題。
https://github.com/apache/pulsar/pull/8979
Java Client: 在發送 <code>TimeoutException</code> 進行故障排除時添加更多資訊。
https://github.com/apache/pulsar/pull/8931
Java Shade Client: 添加加密內建測試。
https://github.com/apache/pulsar/pull/8850
Pulsar Client: 修複帶有加密字段(*****) 的 <code>authParams</code> 參數在日志中顯示的問題。
https://github.com/apache/pulsar/pull/8910
Client:修複不可用的 Hash 範圍條件。
https://github.com/apache/pulsar/pull/9041
Admin: 修複 <code>AdminApiTest2.testMaxSubPerTopicApi</code> 的 Flaky test。
https://github.com/apache/pulsar/pull/8970
Pulsar-managed-ledger-admin:修複删除多個 ledger。
https://github.com/apache/pulsar/pull/9009
Pulsar CI: 通過在 <code>MAVEN_OPTS</code> 環境變量中傳遞 <code>-Dhttp.keepAlive = false -Dmaven.wagon.http.pool = false</code> 來禁用 Maven 的 HTTP 連接配接池。
https://github.com/apache/pulsar/pull/8921
Pulsar IO: 修複 pulsar-io.yaml 檔案名和 <code>sourceConfigClass</code> 類。
https://github.com/apache/pulsar/pull/8941
Schema: 修複自定義 Avro schema 不适用于 consumer 的問題。
https://github.com/apache/pulsar/pull/8939
Pulsar Build: 使用絕對路徑查找許可證和 checkstyle 插件配置。
https://github.com/apache/pulsar/pull/8918
Pulsar Package: 修複包無法上傳的問題。
https://github.com/apache/pulsar/pull/8907
Common:修複檢視壓縮消息時引發異常的問題(Airlift 不支援隻讀緩沖區)。
https://github.com/apache/pulsar/pull/8990
Transaction:修複 transaction 消息順序錯誤和去重錯誤。
https://github.com/apache/pulsar/pull/9024
Proxy:從代理伺服器向用戶端傳回正确的 Authz 和 Auth 錯誤。
https://github.com/apache/pulsar/pull/9055
社群動态
•Pulsar User Survey 2020
點選“閱讀原文”或掃碼下方二維碼,參與 Pulsar 2020 使用者調查,填寫問卷有機會獲得新版 Pulsar 周邊哦!
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5CNlNDZyQGN2EzY0QDMwczY1gzY3MjNjZmYmNDOiJGM28CX1IzLchDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL2M3Lc9CX6MHc0RHaiojIsJye.png)
•TGIP-CN 028: Apache Pulsar 延時隊列的設計與實作[1]•Pulsar Summit Asia 2020 視訊回顧[2]•ApacheCon 2020 - Pulsar/ BookKeeper 專場[3]
技術幹貨
•Impact of Apache Pulsar 2.7 release on the development of Infinitic[4]•Cloud-Native Apache Pulsar 2.7 Supports Transactions and Azure Blob Storage Offloader[5]•Work-Bench Snapshot: Augmenting Streaming and Batch Processing Workflows[6]•How Apache Pulsar is Helping Iterable Scale its Customer Engagement Platform[7]•Using Apache Pulsar With Kotlin -- Gilles Barbier[8]•Pulsar 2.7.0 新特性概覽•Pulsar Flink Connector 2.7.0 新特性
以上就是 2020 年 12 月份的脈動之旅。Apache Pulsar 正在快速成長,感謝來自大家的支援!
Apache Pulsar 社群鼓勵大家積極參與開源社群,無論是文檔、代碼、翻譯,還是技術部落格,都歡迎大家積極參與,早日成為 Pulsar contributor,一起加油鴨。
如果你對 Pulsar Contribute 的流程不太熟練,也可以參考我們這篇小教程,讓你熟悉如何通過 GitHub 對 Pulsar 進行貢獻:新手向|非技術人員如何參與 Pulsar 項目進行貢獻。
<code>[1]</code> TGIP-CN 028: Apache Pulsar 延時隊列的設計與實作: https://www.bilibili.com/video/BV19h411Z7jU?from=search&seid=10045626894755682905
<code>[2]</code> Pulsar Summit Asia 2020 視訊回顧: https://space.bilibili.com/391380821/channel/detail?cid=159884
<code>[3]</code> ApacheCon 2020 - Pulsar/ BookKeeper 專場: https://space.bilibili.com/391380821/channel/detail?cid=159995
<code>[4]</code> Impact of Apache Pulsar 2.7 release on the development of Infinitic: https://infinitic.substack.com/p/infinitic-updates-3
<code>[5]</code> Cloud-Native Apache Pulsar 2.7 Supports Transactions and Azure Blob Storage Offloader: https://streamnative.io/en/blog/release/2020-12-03-pulsar-270
<code>[6]</code> Work-Bench Snapshot: Augmenting Streaming and Batch Processing Workflows: https://medium.com/work-bench/work-bench-snapshot-augmenting-streaming-and-batch-processing-workflows-416e64d37a28
<code>[7]</code> How Apache Pulsar is Helping Iterable Scale its Customer Engagement <code>[8]</code>https://gillesbarbier.medium.com/using-apache-pulsar-with-kotlin-3b0ab398cf52
推薦閱讀
Apache Pulsar 11 月動态
Apache Pulsar 10 月動态
Apache Pulsar 9 月動态
點選「閱讀原文」,參與 Pulsar 2020 使用者調查,赢取最新 Pulsar 周邊!