Pulsar3.0 新功能介绍
在上一篇文章 Pulsar3.0 升级指北讲了关于升级 Pulsar 集群的关键步骤与灾难恢复,本次主要分享一些 Pulsar3.0
的新功能与可能带来的一些问题。
升级后所遇到的问题
先来个欲扬先抑,聊聊升级后所碰到的问题吧。
其中有两个问题我们感知比较明显,特别是第一个。
topic被删除
我们在上个月某天凌晨从 2.11.2
升级到 3.0.1
之后,进行了上一篇文章中所提到的功能性测试,发现没什么问题,觉得一切都还挺顺利的,半个小时搞定后就下班了。
结果哪知道第二天是被电话叫醒的,有部分业务反馈业务重启之后就无法连接到 Pulsar 了。
最终定位是 topic 被删除了。
其中的细节还蛮多的,修复过程也是一波三折,后面我会单独写一篇文章来详细梳理这个过程。
在这个 issue 和 PR 中有详细的描述: https://github.com/apache/pulsar/issues/21653 https://github.com/apache/pulsar/pull/21704
感兴趣的朋友也可以先看看。
监控指标丢失
第二个问题不是那么严重,是升级后发现 bookkeeper 的一些监控指标丢失了,比如这里的写入延迟: 我也定位了蛮久,但不管是官方的 docker 镜像还是源码编译都无法复现这个问题。
最终丢失的指标有这些:
- bookkeeper_server_ADD_ENTRY_REQUEST
- bookkeeper_server_ADD_ENTRY_BLOCKED
- bookkeeper_server_READ_ENTRY_BLOCKED
- bookie_journal_JOURNAL_CB_QUEUE_SIZE
- bookie_read_cache_hits_count
- bookie_read_cache_misses_count
- bookie_DELETED_LEDGER_COUNT
- bookie_MAJOR_COMPACTION_COUNT
详细内容可以参考这个 issue: https://github.com/apache/pulsar/issues/21766
新特性
讲完了遇到的 bug,再来看看带来的新特性,重点介绍我们用得上的特性。
支持低负载均衡
当我们升级或者是重启 broker 的时候,全部重启成功后其实会发现最后重启的那个 broker 是没有流量的。
这个原理和优化在之前写过的 Pulsar负载均衡原理及优化 其实有详细介绍。
本次 3.0 终于将那个优化发版了,之后只要我们配置 lowerBoundarySheddingEnabled: true
就能开启这个低负载均衡的一个特性,使得低负载的 broker 依然有流量进入。
跳过空洞消息
Pulsar 可能会因为消息消费异常导致游标出现空洞,从而导致磁盘得不到释放;
所以我们有一个定时任务,会定期扫描积压消息的 topic 判断是否存在空洞消息,如果存在便可以在管理台使用 skipMessage API 跳过空洞消息,从而释放磁盘。
但在 3.0 之前这个跳过 API 存在 bug,只要跳过的数量超过 8 时,实际跳过的数量就会小于 8.
具体 issue 和修复过程在这里: https://github.com/apache/pulsar/issues/20262 https://github.com/apache/pulsar/pull/20326
总之这个问题在 3.0 之后也是修复了,有类似需求的朋友也可以使用。
新的负载均衡器
同时也支持了一个新的负载均衡器,解决了以下问题:
- 以前的负载均衡大量依赖 zk,当 topic 数量增多时对扩展性带来问题。
- 新的负载均衡器使用
non-persistent
来存储负载信息,就不再依赖 zk 。
- 新的负载均衡器使用
- 以前的负载均衡器需要依赖
leader broker
进行重定向到具体的 broker,其实这些重定向并无意义,徒增了系统开销。- 新的负载均衡器使用了 SystemTopic 来存放 topic 的所有权信息,这样每个 broker 都可以拿到数据,从而不再需要从 leader broker 重定向了。
更多完整信息可以参考这个 PIP: PIP-192: New Pulsar Broker Load Balancer
支持大规模延迟消息
第二个重大特性是支持大规模延迟消息,相信是有不少企业选择 Pulsar 也是因为他原生就支持延迟消息。
我们也是大量在业务中使用延迟消息,以往的延迟消息有着以下一些问题:
- 内存开销过大,延迟消息的索引都是保存在内存中,即便是可以分布在多个 broker 中分散存储,但消耗依然较大
- 重点优化了索引的内存占有量。
- 重启 broker 时会消耗大量时候重建索引
- 支持了索引快照,最大限度的降低了构建索引的资源消耗。
待优化功能
监控面板优化
最后即便是升级到了 3.0 依然还有一些待优化的功能,在之前的 从 Pulsar Client 的原理到它的监控面板中有提到给客户端加了一些监控埋点信息。
最终使用下来发现还缺一个 ack 耗时的一个面板,其实日常碰到最多的问题就是突然不能消费了(或者消费过慢)。
这时如果有这样的耗时面板,首先就可以定位出是否是消费者本身的问题。
目前还在开发中,大概类似于这样的数据。
总结
Pulsar3.0 是 Pulsar 的第一个 LTS 版本,推荐尽快升级可以获得长期支持。 但只要是软件就会有 bug,即便是 LTS 版本,所以大家日常使用碰到 Bug 建议多向社区反馈,一起推动 Pulsar 的进步。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
AI 大模型首次牵手国民级综艺,昆仑万维天工 AI 联合《最强大脑》加速大模型落地
1月5日周五晚21:20,由昆仑万维「天工APP」特约赞助的《最强大脑》第11季正式播出。这是AI大模型技术与国民级综艺IP的首度深度合作,在节目中,「天工APP」将发挥其能搜、能聊、能写的多项超级AI大模型能力,与嘉宾选手深度互动,参与趣味脑力竞技环节,从而进一步推动大模型技术的普适应用,降低技术门槛,让越来越多的用户能够轻松、便捷地拥抱大模型。 作为一档国内影响力最广、最具代表性的国民级的大型科学竞技综艺节目,《最强大脑》在过去十年间已成功举办了10期,在372个挑战项目中,近600位中外选手齐聚舞台,参与脑力竞技、传播科学知识,鼓励越来越多的观众们不断突破能力边界,开拓大脑潜能。 本次「天工APP」与《最强大脑》第11季的深度合作,既是《最强大脑》在科学科普、赛制创新上的又一次尝试,也是以「天工APP」为代表的AI大模型技术在用户更多日常使用场景中的推广与落地。 比如,在节目第一期的“天工开悟”环节中,用户可以通过在「天工APP」中实时搜索“大位数速算法”,与台上的选手们同步学习运用心算技巧,挑战最强大脑。 与此同时,「天工APP」还与《最强大脑》联合发起了脑力挑战赛,用...
- 下一篇
开源之旅,.NET 流行框架 Furion 2023 年终总结
一年又一年,已是物是人非 开源之旅,曲折而又意义非凡。 回想三年前,我初次迈出 Furion 开源项目的步伐,面对着一片质疑和嘲笑的声音。虽然这些声音刺痛了我的内心,但我并没有放弃。我选择专注于用户需求,持之以恒地改进代码质量和文档。艰辛与困难并没有打败我,相反,它们让我变得更坚定,更成熟。 开源世界从来不是一个人的舞台,它需要众多开发者和用户的支持和参与。我深知,无论我怎样努力和完善我的项目,总会有人不喜欢,不认同。然而,这并不是我成长的障碍,反而是我成长的催化剂。我逐渐明白,不追求所有人的赞同,而是专注于为那些真正认可和喜欢我的工作的人提供更好的服务,才是更重要的。 在这段开源之路上,我亦流连于困境和挫折中。磨难并不使人成长,但它们教会了我成熟和坚韧。我深知,每个人都会有自己的独特感受和看法,只有接受这个事实,并用成熟的心态去面对,才能不断发展自己,走向更高的成就。 同时,我对国内开源人的不易有着深切的感受。在商业导向的社会中,选择投身开源事业需要巨大的勇气和决心。开源项目的作者们需要面对各种挑战和批评,但正是因为他们对开源事业的执着,社区才得以繁荣。我向每一位国内的开源爱好者致以...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Linux系统CentOS6、CentOS7手动修改IP地址
- 2048小游戏-低调大师作品
- CentOS8安装Docker,最新的服务器搭配容器使用
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16