脉冲星 5 月脉动 | Pulsar 2.3.2 即将发布、2.4.0 预览、Pulsar 与 Camel 集成
审校:Sijie + Jennifer
编辑:Susan + Anonymitaet
阅读本文需要约 10 分钟。
本月亮点速览
产品动态
Pulsar 2.3.2 版本即将发布
Pulsar 2.4.0 版本预览
海内外社区动态
Pulsar 与 Camel 集成 (THG)
Awesome Pulsar
Apache Roadshow Chicago(美国联合航空公司)
EventStreaming Meetup
EMQ Meetup
多篇技术干货出炉
产品动态
Pulsar 2.3.2 版本即将发布
Apache Pulsar 将在 6 月上旬正式发布 2.3.2 版本。
2.3.2 版本修复和改进了用户在使用 2.3.1 版本时反馈的问题,包括消息存储核心、多语言客户端和 Pulsar Functions 等,具体如下:
在核心存储方面,将 BookKeeper 版本升级到 4.9.2,解决了 DbLedgerStorage 启动失败和用户在安装 BookKeeper 客户端依赖库时,需要安装 GCC 的问题。在 broker 方面,修复了死锁、认证和消息回退等问题。在安全方面,升级了认证版本。
在多语言客户端,修复了 Python 嵌套结构下无法进行序列化的问题,修复了 C++ 初始化错误,修复了 pulsar-client-go 构建时参数类型错误等。
在 Pulsar Functions 方面,丰富了 Functions Worker 的功能,优化了 Java Function,并在 Python 中增加了 Table service 接口。修复了提交功能,可以通过 URL 上传整个文件。
Pulsar 2.4.0 版本预览
整个 5 月,2.4.0 版本的开发在紧张有序地进行,以下是 2.4.0 版本的主要功能预览。
Go Function API、Instance 和 LocalRun
Functions 是 Pulsar 轻量级计算框架。Pulsar 将在 2.4.0 中正式支持 Go Functions,Go Functions 已经支持了在本地和集群环境运行,相关功能已经合并到主分支。
更多信息,参阅 [PIP-32]
(https://github.com/apache/pulsar/wiki/PIP-32%3A-Go-Function-API%2C-Instance-and-LocalRun)。
跨地域复制订阅
Pulsar 提供了跨地域复制功能,通过配置可以将 topic 复制到多个地域。
目前,topic 在不同集群上只是一个虚拟的全局实例,对于订阅而言是在本地集群上,不同集群之间并没有联系,这就导致当某个消费者重连到一个新的地域时,消费者会创建一个名字相同但与上一个连接毫无关联的订阅。这个订阅会通过配置中消息的位置来创建,与此同时,原来的订阅将被留在上一个地域,这导致了不同地域之间消息不连贯的问题。PIP-33 通过创建快照解决了这个问题。
更多信息,参阅 [PIP-33]
(https://github.com/apache/pulsar/wiki/PIP-33%3A-Replicated-subscriptions)。
最大消息大小
Pulsar 支持消息最大为 5 MB,在一些数据迁移的场景中,5 MB 很难满足需求,所以增加了这个阈值。目前,Java 端已经开发完毕,并且已经合并到主分支;C++ 端也在支持中。
更多信息,参阅 [PIP-36]
(https://github.com/apache/pulsar/wiki/PIP-36%3A-Max-Message-Size)。
事务支持
Pulsar 保证消息分发的最高机制是 exactly-once,通过 Idempotent Producer 保证了一个分区内的消息只会被持久化一次,而不会丢失,但对多分区的生产者生产的消息没有原子性保证。在 Pulsar Functions 中只保证了一个事件的 exactly-once,但并不保证在处理多个事件或生产多个结果时事件的准确。事务消息语义简化了 Pulsar 或 Pulsar Functions 的使用,同时扩大了 Pulsar 的领域。目前已经有一些 commits 合并到主分支,将会在 2.5.0 版本支持事务。
更多信息,参阅 [PIP-31]
(https://github.com/apache/pulsar/wiki/PIP-31%3A-Transaction-Support)。
其他亮点
- 压缩类型 -
目前,Pulsar 支持 LZ4、ZLIB 和 ZSTD 压缩算法对消息进行压缩,Pulsar 将在 2.4.0 版本新增 Snappy 压缩算法。
更多信息,参阅 [PR-4259]
(https://github.com/apache/pulsar/pull/4259)。
- Schema 兼容性检查 -
Pulsar 只对最新版本的 Schema 进行兼容性检查,在支持了 Struct schema 之后,这种检查难以满足需求。
2.4.0 版本将提供 FORWARD_TRANSITIVE、BACKWARD_TRANSITIVE、FULL_TRANSITIVE 对所有版本的 schema 进行兼容性检查。
更多信息,参阅 [PR-4214]
(https://github.com/apache/pulsar/pull/4214)。
- 流量控制 -
Pulsar 支持对 topics 和 subscriptions 限流来控制网络带宽的使用。跨地域复制时,当一个集群 A 下线一段时间后再上线,会导致其他集群的同步消息将集群的网络带宽耗尽。2.4.0 版本支持跨地域复制的流量控制来解决这个问题。
更多信息,参阅 [PR-4273]
(https://github.com/apache/pulsar/pull/4273)。
- 拦截超时消息确认 -
Pulsar 将在 2.4.0 版本支持对超时消息确认进行拦截,用户可以自定义在消息确认超时情况下的处理逻辑。
更多信息,参阅 [PR-4300]
(https://github.com/apache/pulsar/pull/4300)。
- 二级 Bookie 隔离组 -
Pulsar 使用 BookKeeper 进行消息存储,当隔离组里的 bookie 不够时会导致 bookie 宕机并影响 broker 的写操作。2.4.0 版本支持二级 Bookie 隔离组解决这一问题。
更多信息,参阅 [PR-4261]
(https://github.com/apache/pulsar/pull/4261)。
- 多主机 -
Pulsar 可以通过 Pulsar Proxy 进行多主机访问,同时也能通过提供多地址访问多个 broker,并实现了自动重试。2.4.0 版本支持对 Pulsar Admin 的多地址重试,用户需要提供多地址的访问路径。
更多信息,参阅 [PR-4018]
(https://github.com/apache/pulsar/pull/4018)。
海内外社区动态
Pulsar 与 Camel 集成
Apache Camel 是一个功能强大的开源集成框架,它可以基于多种 DSL 实现路由,Camel 可以通过 URIs 来定义路由方式。
THG 集成了 Pulsar 与 Camel,将 Pulsar 作为 Camel 的组件之一。Pulsar 与 Camel 的集成构建了微服务应用层和底层消息系统之间的抽象层,这有利于更换消息来源。
更多信息,参阅 [A feather in their caps]
(https://medium.com/thg-tech-blog/a-feather-in-their-caps-4c4083cf9f46)。
Awesome Pulsar
Awesome Pulsar 提供了一个与 Pulsar 相关的工具、集成和资源列表,可以快速查找到你需要的 Pulsar 生态工具。欢迎小伙伴们对列表查阅补漏。
更多信息,参阅 [Awesome Pulsar]
(https://github.com/streamnative/awesome-pulsar)。
Apache Roadshow Chicago
2019 年 5 月 13 日,Joe Olson 在 Apache Roadshow Chicago 大会上发表了关于“Apache Kafka 与 Apache Pulsar 在美国联合航空公司的应用对比”的演讲,分析了 Kafka 和 Pulsar 的架构和生产部署模式的共同点和差异化、美国联合航空公司目前开源的发布-订阅消息系统的现状等。
更多信息,参阅 [Pub/Sub at United Airlines: Apache Kafka and Apache Pulsar]
(https://www.apachecon.com/chiroadshow19/talks/pub-sub-at-united-airlines-apache-kafka-and-apache-pulsar.html)。
EventStreaming Meetup
2019 年 5 月 11 日,StreamNative 在北京举办了 EventStreaming 第 1 场技术沙龙,本次沙龙主要介绍了 Apache Pulsar 跨地域复制和 Functions 的功能概览和技术细节。
更多信息,参阅 [EventStreaming Meetup No.1]
(https://mp.weixin.qq.com/s/yRLjLhlgCtK4He-lhuf3Yg)。
EMQ Meetup
2019 年 5 月 18 日,EMQ 团队在北京举办了主题为“基于 EMQ X 打造 5G 时代物联网(loT)平台和应用”的技术沙龙,我司 CEO 郭斯杰受邀参与本次沙龙,与 EMQ 解决方案总监 Frank Wang 合作发表了主题为“Apache Pulsar 在 EMQ 开源物联网平台产品 ActorCloud 上的应用”的演讲。
更多信息,参阅 [EMQ X Meetup 北京站]
(https://mp.weixin.qq.com/s/fXYfyWgxH_WY5B5QASG7CA)。
多篇技术干货出炉
以下技术大佬发表了技术博客。
以上是本期全部内容,欢迎加入 Pulsar 社区,我们下期再见。