脉冲星 5 月脉动 | 周边生态齐开源

关于 Apache Pulsar

Apache Pulsar 是 Apache 软件基金会顶级项目,是下一代云原生分布式消息流平台,集消息、存储、轻量化函数式计算为一体,采用计算与存储分离架构设计,支持多租户、持久化存储、多机房跨区域数据复制,具有强一致性、高吞吐、低延时及高可扩展性等流数据存储特性。
GitHub 地址:http://github.com/apache/pulsar/

本月报由 StreamNative 负责维护,如需转载,欢迎后台联络。

导语

各位小伙伴们,2021 年 5 月 Pulsar 社区月报来啦!

感谢以下各位社区成员本月对 Pulsar 项目的代码贡献,让 Apache Pulsar 继续发光发热!(排名不分先后,看看你有没有上榜 ??):

jerrypeng、dlg99、rdhabalia、315157973、k2la、eolivelli、wolfstudy、cbornet、abhilashmandaliya、 fantapsody、devinbost、BewareMyPower、zymap、freeznet、codelipenghui、dragonls、KannarFr、linlinnn、devinbost、merlimat、lhotari、cdbartholomew、hangc0276、abhilashmandaliya、congbobo184、BewareMyPower、aahmed-se、Shoothzj、yangl、odmarkj、lbenc135、jangwind、MarvinCai、wangjialing218、david-streamlio、zzzming、dockerzhang、saosir、Anonymitaet 、wenbingshen、massakam、mantuliu、michaeljmarshall、urfreespace、tuteng、addisonj、Sunny-Island、newur、RobertIndie、timmyyuan、sijie、sijia-w、atezs82、Shoothzj、aahmed-se

项目进展

[PIP-45] 恢复会话后,重新验证 leader 选举。
https://github.com/apache/pulsar/pull/10457

[PIP-85] 将 schema 信息添加到 Java Client API 的消息中。
https://github.com/apache/pulsar/pull/10476

重要进展

Broker

Broker:在强制删除 namespace 后,删除剩余信息。
https://github.com/apache/pulsar/pull/10465

Broker:MetadataCache 中的 readModifyUpdate 应返回赋予新值的CompletableFuture<T>
https://github.com/apache/pulsar/pull/10474

Broker:HttpLookupService 支持 listenerName 配置项。
https://github.com/apache/pulsar/pull/10319

Broker:为拦截器添加 onFilter
https://github.com/apache/pulsar/pull/10489

Broker:将 topic 级别的 averageMsgSize 暴露给指标。
https://github.com/apache/pulsar/pull/10553

Broker:在无需处理 startMessageRollbackDurationSec 的情况下获得持久订阅。
https://github.com/apache/pulsar/pull/10520

Broker:当 broker 内一个 consumer 的订阅数到达顶峰时,允许其他尚未达到订阅数的consumer 消费消息。
https://github.com/apache/pulsar/pull/10417

Broker:使用并发的 Hash map 处理锁通知。
https://github.com/apache/pulsar/pull/10680

Broker:支持在 Pulsar broker 和 Pulsar client 中配置忙等待。
https://github.com/apache/pulsar/pull/10661

Broker:使用 MetadataStore 设置 transaction 元数据。
https://github.com/apache/pulsar/pull/10677

Broker:使用 MetadataStore 设置初始 namespace。
https://github.com/apache/pulsar/pull/10612

Broker:当 managedLedgerNewEntriesCheckDelayInMillis 设置为 0 时避免上下文切换。
https://github.com/apache/pulsar/pull/10660

Broker:使用 MetadataStore 设置 Pulsar 集群。
https://github.com/apache/pulsar/pull/10600

Broker:在迭代自定义 HASH 映射时避免制作内部映射的副本。
https://github.com/apache/pulsar/pull/10691

Broker:优化 getTopicPolicies,避免抛出不必要的异常。
https://github.com/apache/pulsar/pull/10683

Broker:迁移 NamespaceService 以使用 MetadataStore
https://github.com/apache/pulsar/pull/10532

BookKeeper

BookKeeper:用 MetadataStore 初始化 ManagedLedgerFactory
https://github.com/apache/pulsar/pull/10647

BookKeeper:确保在缓存失效时正确关闭 ReadHandle
https://github.com/apache/pulsar/pull/10659

BookKeeper:支持配置 BookKeeper client 工作线程数。
https://github.com/apache/pulsar/pull/10649

Bookie

Bookie:修复 ledger rollover 期间发布回调的 entry 数据为空的问题。
https://github.com/apache/pulsar/pull/10467

Bookie:修复获取统计信息和每个 namespace 的最大 topic 数时可能出现的错误,并删除不必要的错误日志。
https://github.com/apache/pulsar/pull/10500

Client

Client:修复 Pulsar 客户端空指针异常的问题。
https://github.com/apache/pulsar/pull/10470

Java Client:使用 KeyValueSchema 修复 Schema.AUTO_CONSUME() 的行为并编写不同版本的 schema。
https://github.com/apache/pulsar/pull/10492

Python Client:用 PulsarExceptions 替换 Exceptions
https://github.com/apache/pulsar/pull/7600

Pulsar client:将 org.apache.bookkeeper:cpu-affinity添加到阴影配置文件中。
https://github.com/apache/pulsar/pull/10681

Java Client:不要在多主题 consumer 上一直检查分区元数据。
https://github.com/apache/pulsar/pull/10708

Enhancement

Enhancement:改进在本地运行启动过程中处理错误的方式。
https://github.com/apache/pulsar/pull/10450

Enhancement:修复 TopicPolicies 可能存在的内存泄漏。
https://github.com/apache/pulsar/pull/10466

Enhancement:支持在不中断 producer 和 consumer 的情况下截断 topic 的所有数据。
https://github.com/apache/pulsar/pull/10326

Enhancement:支持使用自定义 SerDe 创建 MetadataCache
https://github.com/apache/pulsar/pull/10543

Enhancement:支持 reader 从单独的消息 ID 或时间中查找消息。
https://github.com/apache/pulsar/pull/10348

Enhancement:支持禁用 producer 的最大队列大小。
https://github.com/apache/pulsar/pull/9650

Transaction

Transaction:支持通过 transaction Admin API 获取 transaction 状态。
https://github.com/apache/pulsar/pull/10639

Transaction:添加 transaction Admin API getPendingAckInternalStats
https://github.com/apache/pulsar/pull/10725

Transaction:修复 transaction 日志中 ManagedLedger 的 WriteFail 状态。
https://github.com/apache/pulsar/pull/10711

Transaction:添加 transaction Admin API getSlowTransactions 和 getSlowTransactionsByCoordinatorId
https://github.com/apache/pulsar/pull/10701

Transaction:添加 transaction Admin API getTransactionMetadata
https://github.com/apache/pulsar/pull/10690

Transaction:添加 transaction Admin API getCoordinatorInternalStats
https://github.com/apache/pulsar/pull/10653

Transaction:添加 transaction Admin API getTransactionBufferStatus 和 getPendingAckStatus
https://github.com/apache/pulsar/pull/10650

Transaction:添加 transaction Admin API getTransactionInPendingAckStats
https://github.com/apache/pulsar/pull/10648

Transaction:添加 transaction Admin API getTransactionInBufferStats
https://github.com/apache/pulsar/pull/10642

Schema

Schema:通过 AutoConsumeSchema 支持消费多种 schema 类型的消息。
https://github.com/apache/pulsar/pull/10604

Schema:在 AutoConsumeSchema.decode 中,准确地将 decode(payload, schemaversion) 回调代理到封装好的 Schema。
https://github.com/apache/pulsar/pull/10700

Schema:支持使用 AutoProduceBytesSchema 作为 function 输出 schema。
https://github.com/apache/pulsar/pull/10716

Java:[Schema] 启用有关 AutoConsume 和 KeyValue 的禁用测试,并添加有关空值的测试。
https://github.com/apache/pulsar/pull/10626

Java:[Schema] 添加更多关于 KeyValue 和空值的测试。
https://github.com/apache/pulsar/pull/10609

其他

Auth:在 Pulsar broker 和 Pulsar proxy 中为 Jetty 启用 Conscrypt。
https://github.com/apache/pulsar/pull/10541

Auth:在 HTTP 身份验证中支持可选的身份验证方法名称标头。
https://github.com/apache/pulsar/pull/6799

C++:添加 C++ 单文件 logger factory。
https://github.com/apache/pulsar/pull/10712

C++:在启用消息监听器时减少冗余的 redeliverMessages
https://github.com/apache/pulsar/pull/10726

CLI:支持通过 CLI 设置基于时间限制的积压配额。
https://github.com/apache/pulsar/pull/10401

Common:修复 LongPairRangeSet 中不一致的行为。
https://github.com/apache/pulsar/pull/10713

Consumer:使 consumer 线程安全且无锁。
https://github.com/apache/pulsar/pull/10352

Functions:在同一个 Java 可运行线程中处理异步结果。
https://github.com/apache/pulsar/pull/10618

Function:在 Pulsar Admin source API 中添加 --batch-source-config 开关。
https://github.com/apache/pulsar/pull/10593

Metrics:为不连续的已删除消息范围添加指标。
https://github.com/apache/pulsar/pull/10638

Performance:优化 AuthProviderToken 类以使用相同的解析器实例。
https://github.com/apache/pulsar/pull/10664

Pulsar Admin:返回更好的错误消息。
https://github.com/apache/pulsar/pull/10628

Pulsar Proxy:调整 logger.debug 的位置。
https://github.com/apache/pulsar/pull/10684

Pulsar IO:在可能的情况下,在 Pulsar sink connector 中使用 Message.getReaderSchema()
https://github.com/apache/pulsar/pull/10557

重构 try-lock 代码模式。
https://github.com/apache/pulsar/pull/10742

Test:从隔离组中删除与 key_shared 相关的测试。
https://github.com/apache/pulsar/pull/10508

Bug 修复

Admin

Admin: 修复获取不存在 topic 的分区元数据时返回 0 的问题。
https://github.com/apache/pulsar/pull/10601

Admin:将 bundle split 操作转换为 HTTP 异步操作。
https://github.com/apache/pulsar/pull/10619

Broker

Broker:将日志记录添加到 JavaInstanceRunnable 中,帮助调试问题。
https://github.com/apache/pulsar/pull/10461

Broker:修复在未创建调度程序情况下解锁卡住的订阅任务时出现的空指针异常问题。
https://github.com/apache/pulsar/pull/10430

Broker:修复更新分区 topic 的分区号时产生的授权错误。
https://github.com/apache/pulsar/pull/10333

Broker:在新的 namespace 路由上支持 PolicyName 和 Authz
https://github.com/apache/pulsar/pull/7900

Broker:将 ManagedLedgerInterceptor 的方法 onManagedLedgerLastLedgerInitialize 异步化。
https://github.com/apache/pulsar/pull/10706

Broker:修复过滤读取 entry 时发生的 NPE 问题。
https://github.com/apache/pulsar/pull/10704

Broker:修复尝试重新发送大量已确认消息时出现 StackOverflowError 的问题。
https://github.com/apache/pulsar/pull/10696

Broker:修复 advanceNonDurableCursors 中的问题。
https://github.com/apache/pulsar/pull/10667

Broker:捕获 checkSubscriptionTypesEnable 中异常。
https://github.com/apache/pulsar/pull/10341

代理:修复检查分区主题是否为系统主题时发生的错误。
https://github.com/apache/pulsar/pull/10529

Broker:修复 PusarService 和 conf. 中的 AdvertisedAddress 不一致的问题。
https://github.com/apache/pulsar/pull/10312

Broker:加固 OpAddEntry.toString() 到 null 以防止 NPE。
https://github.com/apache/pulsar/pull/10548

Broker:修复 consumer 相关 topic 统计信息只在 consumer 或 reader 连接时才可用的问题。
https://github.com/apache/pulsar/pull/10644

Client

Client:修复 hasMessageAvailableAsync 返回 true 但无法读取消息的问题。
https://github.com/apache/pulsar/pull/10414

Client:修复 GenericJsonRecord 中的空指针异常问题。
https://github.com/apache/pulsar/pull/10482

Client:修复 ACK 分组跟踪器检查重复的消息 ID 时抛出的 NPE 问题。
https://github.com/apache/pulsar/pull/10586

Client:修复默认的重试主题名称和死信主题名称。
https://github.com/apache/pulsar/pull/10129

pulsar-client:修复 pulsar-client 阴影配置中的问题。
https://github.com/apache/pulsar/pull/10614

Pulsar-client:修复 MessageCrypto 接口不应在 API 中暴露 NettyByteBuf 类的问题。
https://github.com/apache/pulsar/pull/10616

Java Client:将错误消息添加到 setMaxPendingMessagesAcrossPartitions
https://github.com/apache/pulsar/pull/10709

Function

Function:修复 Pulsar Function API 无法使用身份验证数据检查超级用户的问题。
https://github.com/apache/pulsar/pull/10364

Function:修复死锁,监控被 LeaderService.isLeader() 阻塞的线程。
https://github.com/apache/pulsar/pull/10502

Function:支持为插件程序服务设置自定义配置。
https://github.com/apache/pulsar/pull/10504

Function:修复 sink 或 source 异常统计信息。
https://github.com/apache/pulsar/pull/10549

Function:使用默认的 Kubernetes secret 挂载权限来允许非 root 用户读取认证 token。
https://github.com/apache/pulsar/pull/10743

Test

Test:修复 GracefulExecutorServicesShutdownTest 的 flaky test。
https://github.com/apache/pulsar/pull/10599

Test:重构 function 集成测试以更易于维护。
https://github.com/apache/pulsar/pull/10140

Test:修复失败的 TopicPoliciesTest.testMaxSubscriptionsFailFast 测试。
https://github.com/apache/pulsar/pull/10640

Transaction

Transaction:修复 transaction 缓冲区删除标记的问题。
https://github.com/apache/pulsar/pull/10525

Transaction:修复 transaction 对于拥有多个订阅的 topic 的签收问题。
https://github.com/apache/pulsar/pull/10689

其他

Authz:添加 topic API 身份验证的颗粒度。
https://github.com/apache/pulsar/pull/7523

Build:修复由被拒绝的权限引起的构建错误。
https://github.com/apache/pulsar/pull/10641

Common:修复 ConcurrentOpenLongPairRangeSet 以删除所有范围的数据。
https://github.com/apache/pulsar/pull/10656

修复二进制许可证检查问题并将用于 Pulsar SQL 的 Jersey 更新到 2.34 版本。
https://github.com/apache/pulsar/pull/10682

ManagedLedger:修复用于防止超时和完成之间竞争条件的原始解决方案。
https://github.com/apache/pulsar/pull/10740

ManagedLedger:修复计划任务取消操作,使其在 asyncClose 方法中更早发生。
https://github.com/apache/pulsar/pull/10739

Offloader:修复 AWS 凭证使用问题。
https://github.com/apache/pulsar/pull/8950

Pulsar-IO:暴露 SinkContext 中的 SubscriptionType
https://github.com/apache/pulsar/pull/10446

活动与干货

活动

报名 Pulsar Virtual Summit North America 2021[1]Pulsar Virtual Summit North America 2021 议程出炉[2]开源之夏启动!欢迎报名 Apache Pulsar 社区项目

案例

最佳实践|Apache Pulsar 在拉卡拉的技术实践从 Kafka 到 Pulsar,华为云物联网上云之旅[3]

博文

博文推荐|多图科普 Apache Pulsar技术探究:Apache Pulsar 的事务型事件流博文推荐|零经验玩转隔离策略:多个 Pulsar 集群技术博文|Flink 和 Pulsar 的批流融合博文推荐|如何使用Apache Pulsar + Hudi 构建 Lakehouse译文|基于 Pulsar 的事件驱动铁路网 Apache Pulsar — Development Setup — alpha2phi[4]7 Reasons to Choose Apache Pulsar over Apache Kafka, Chris Bartholomew[5]Fast JMS for Apache Pulsar: Modernize and Reduce Costs with Blazing Performance, Enrico Olivelli[6]Monitoring the Health of Apache Pulsar with Pulsar Heartbeat, Ming Luo[7]

生态

周边生态|StreamNative 宣布开源 Function Mesh:简化云上的复杂流任务周边生态 | StreamNative 和腾讯宣布开源 RoP:Apache Pulsar 支持原生 RocketMQ 协议周边生态|StreamNative 宣布开源 AMQP 1.0 Connector项目动态|Apache Pulsar 2.7.2 版本发布!

相关阅读

脉冲星 4 月脉动脉冲星 3 月脉动脉冲星 2 月脉动

以上就是 2021 年 5 月份的脉动之旅。Apache Pulsar 正在快速成长,感谢来自各位社区成员的支持!

Apache Pulsar 社区鼓励大家积极参与开源社区,无论是文档、代码、翻译,还是技术博客,都欢迎大家积极参与,早日成为 Pulsar contributor,一起加油!

引用链接

[1] 报名 Pulsar Virtual Summit North America 2021: https://hopin.com/events/pulsar-summit-north-america-2021
[2] Pulsar Virtual Summit North America 2021 议程出炉: https://streamnative.io/en/blog/community/2021-05-12-pulsar-virtual-summit-north-america-2021-speakers-announced
[3] 从 Kafka 到 Pulsar,华为云物联网上云之旅: https://www.infoq.cn/article/pYL93ahACjrHskbhkRgC
[4] Apache Pulsar — Development Setup — alpha2phi: https://alpha2phi.medium.com/apache-pulsar-development-setup-bbdc82314cf
[5] 7 Reasons to Choose Apache Pulsar over Apache Kafka, Chris Bartholomew: https://datastax.medium.com/7-reasons-to-choose-apache-pulsar-over-apache-kafka-cb111087eadb
[6] Fast JMS for Apache Pulsar: Modernize and Reduce Costs with Blazing Performance, Enrico Olivelli: https://www.datastax.com/blog/fast-jms-apache-pulsar
[7] Monitoring the Health of Apache Pulsar with Pulsar Heartbeat, Ming Luo: https://www.datastax.com/blog/monitoring-health-apache-pulsar-pulsar-heartbeat

脉冲星 5 月脉动 | 周边生态齐开源

点击“阅读原文”,获取 Apache Pulsar 硬核干货资料!

本文分享自微信公众号 – ApachePulsar(ApachePulsar)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

{{o.name}}


{{m.name}}

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/72701.html

(0)
上一篇 2021年8月11日 22:20
下一篇 2021年8月11日 22:20

相关推荐

发表回复

登录后才能评论