脉冲星 10 月脉动 | Pulsar 2.5.0 功能预览,Pulsar Meetup 上海站报名中_C++

????️阅读本文需要 8 分钟

 

脉冲星 10 月脉动 | Pulsar 2.5.0 功能预览,Pulsar Meetup 上海站报名中_Apache Pulsar_02

 

> PIP-45 Pluggable metadata interface

 

该方案提供一个统一的可插拔的接口,抽象出 Pulsar 的元数据实现。重构后,默认仍然基于 ZooKeeper 来存储元数据,并且元数据仍然以相同的格式保存在同样的位置。一旦定义了接口,我们就可以支持多个元数据存储的实现:

 

  • ZooKeeper

  • Etcd

  • In-memory 基于内存的实现,用于测试

  • Local disk 在单机模式下存储在本地磁盘上

 > PIP-47 Time Based Release Plan

该方案旨在规范 Pulsar 的发布的流程,它提出了一种更加规范的发布流程,包括定义了什么是新增功能、什么是问题修复、代码何时冻结、功能未开发完应该如何做、以及重点关注的点、版本发布负责人、版本号与版本发布时间等。 

 

脉冲星 10 月脉动 | Pulsar 2.5.0 功能预览,Pulsar Meetup 上海站报名中_Apache Pulsar_03
  • 修改 ManagedLedger 的部分方法为 public,方便其他的外部类调用(PR-5472)。
  • 支持异常 skip 所有消息(PR-5375)。
  • 在 proxy 上增加一个缓存,确保请求 body 能被正确重发(PR-5361)。
  • 在执行 offload 操作时,不再要求同时指定 region 和 endpoint(PR-5355)。
  • 如果游标没有被持久化,订阅将在所有 consumer 被移除后再关闭和清理(PR-5340)。
  • 默认关闭粘性读(PR-5321)。
  • 增加 debug 日志(PR-5302)。
  • 在 zk-cache 超时时,使缓存无效(PR-5298)。
  • 对于只读 ledger 不再尝试追加(PR-5297)。

    当 cursor 从 ledger 中恢复时,ledgerHandle 将保持打开状态,这样能在更新 cursor 状态后删除该 ledger。如果试图在更新 cursor 之前关闭它,会抛出一个错误,即尝试追加只读 ledger 失败。例如:

     
    •  
    00:29:32.964 [pulsar-ordered-OrderedExecutor-6-0-EventThread] ERROR org.apache.bookkeeper.client.ReadOnlyLedgerHandle - Tried to add entry on a Read-Only ledger handle, ledgerid=10 
    此外,在关闭操作中追加 ledger 时,需要显式关闭 ledger,以避免在加载 Topic 时进行昂贵的恢复操作。

 

  • 在订阅类型改变时,关闭先前的 dispatcher,否则会导致内存泄漏(PR-5288)。

 

 

>>> BookKeeper

PR-5322:当 BookKeeper 写入失败发生时,我们应该在错误恢复代码运行完成后使用适当的信号继续写入(创建新的 ledger),而不是等待 10 秒钟后再创建新的 ledger,以防止出现任何竞争情况。

 

 

>>> Client

 

>> C++
  • 修复 C++ 客户端不能正确初始化 timerInterval_ 的问题(PR-5453)。
  • 在批量消息发送失败时,避免内存泄漏(PR-5442)。
  • 修复在 addConsumer 时潜在的死锁问题(PR-5371)。
  • 修复在关闭 producer 的时候出现的 bad_weak_ptr 错误(PR-5315)。
  • 解决 C++ 客户端关闭时未执行相应的析构函数导致内存泄漏的问题(PR-5286)。

 

>> Java

  • 修复错误的消息和不正确的批大小导致的 OOM 问题(PR-5443)。
  • 修复 subscription.getDispatcher() 的空指针异常。该问题会导致取消 namespace 的角色失败(PR-5408)。

 

 

>>> Schema

PR-5445:修复 StringSchema 静态类初始化的问题。由于 Java 中不能保证一个类的静态字段的初始化顺序,这与 JVM 的版本和其他静态条件有关,因此调用时有可能出现空指针异常。

 

 

>>> 测试

  • 修复由于 pyyaml 的版本问题导致集成测试失败的问题(PR-5432)。

  • 修复多个与集成测试相关的 functions,包括增加对 FunctionsCLITest 的测试(PR-5434)。

  • 修复一些不稳定的与 Pulsar window 相关的集成测试(PR-5337)。

 

 

>>> 周边生态

  • Pulsar node client 0.7.0  发布,支持 TLS 和 token 认证。
  • Pulsar .Net 客户端发布 0.6.0,0.5.0 和 0.4.0 版本。支持 seek 操作,支持 topic compact 操作,支持添加 key/value 属性。
  • Go 版本 Puslar 命令行管理工具 pulsarctl 开源,pulsarctl 基于 Pulsar REST API 使用 Go 语言进行开发,相比 Java 更加轻量级。一方面为 Go 的开发者提供了 API 接口,方便用户开发;另一方面提供了一个更方便和快速的命令行客户端。
  • 使用 Apache SkyWalking 对 Apache Pulsar 进行消息链路追踪与性能监控
  • Pulsar Express 0.5.0 发布。支持对 broker 进行健康检查,创建和删除 namespace,创建和删除 topic 等操作。

 


 

脉冲星 10 月脉动 | Pulsar 2.5.0 功能预览,Pulsar Meetup 上海站报名中_Apache Pulsar_04

 

>> Flink Forward Europe 2019 圆满举行

 

2019 年 10 月 7-9 日,Flink Forward Europe 2019 在德国柏林举行,多个大牛技术团队也参与了此次大会。

 

StreamNative 作为唯一一家 startup 赞助商也参与其中, StreamNative CEO 郭斯杰发表了主题为 「Query Pulsar Streams using Apache Flink」 的演讲,分享了 Pulsar 与 Flink 1.9 进行集成的最新动态。

 

????更多详情查看 Recap | Query Pulsar Streams using Apache Flink

 

 

>> Hadoop User Group France 上干货满满

2019 年10月11日,在法国举行的 Hadoop User Group France 圆满结束,1500多人出席参加了此次会议。

 

此次法国交流之行,StreamNative 的 CEO 郭斯杰分享了 Apache Pulsar 的内容—— Building a unified data processing stack with Apache Pulsar and Apache Spark。

????更多详情查看 
Recap|Hadoop User Group France



>> Crunch Data Conference | Budapest

 

在 10 月 16 日举行的 Crunch Data Conference 上, Pulsar committer —— Ivan Kelly 进行了主题为「Infinite topic backlogs with Apache Pulsar」的演讲。

 

????详情可复制 https://crunchconf.com/speaker/IvanKelly#talks 进行查看。

 

 

>> Apache Pulsar Meetup 上海站即将启航 StreamNative 主办的「Apache Pulsar Meetup |上海站」将在11 月 16 日进行,届时将分享 Pulsar 的最新研发进展、用户案例和行业动态、热点话题等。 脉冲星 10 月脉动 | Pulsar 2.5.0 功能预览,Pulsar Meetup 上海站报名中_Apache Pulsar_05

 

脉冲星 10 月脉动 | Pulsar 2.5.0 功能预览,Pulsar Meetup 上海站报名中_Apache Pulsar_06

 

本月发布了多篇中英技术文档和用户案例。

 

  • Pulsar Kafka Client 简单介绍

  • Life beyond Kafka with Apache Pulsar
    (https://dzone.com/articles/life-beyond-kafka-with-apache-pulsar)
  • An introduction to Stream Processing with Pulsar Functions
    (https://dzone.com/articles/an-introduction-to-stream-processing-with-pulsar-f)
  • 5 More Reasons to Choose Apache Pulsar over Kafka
    (https://kafkaesque.io/5-more-reasons-to-choose-apache-pulsar-over-kafka/)
  • How to use Apache Pulsar Manager with HerdDB
    (https://medium.com/streamnative/how-to-use-apache-pulsar-manager-with-herddb-dd265c955ca4)
  • Why Nutanix Beam went ahead with Apache Pulsar instead of Apache Kafka?
    (https://medium.com/@yuvarajl/why-nutanix-beam-went-ahead-with-apache-pulsar-instead-of-apache-kafka-1415f592dbbb)
  • Basic Pulsar producer and consumer
    (https://www.syscrest.com/2019/10/basic-pulsar-producer-and-consumer-json-helm-kubernetes/)

     


 

以上就是 10 月脉动之旅,感谢小伙伴们的全程陪伴。

 

脉冲星 10 月脉动 | Pulsar 2.5.0 功能预览,Pulsar Meetup 上海站报名中_Apache Pulsar_07