新浪公司是一家服务于中国及全球华人社群的领先网络媒体公司 。其业务涵盖新浪媒体、微博和新浪金融 。新浪通过门户网站新浪网、新浪移动、新浪财经以及社交媒体平台微博组成的数字媒体网络 , 帮助广大用户获得专业媒体、机构和个人创作的多媒体内容并与他人进行兴趣分享和社交互动 。
其中,微博是人们在线创作、分享和发现内容的中国领先社交媒体平台 。新浪微博于 2009 年上线,是中国头部、流行的社交媒体平台,提供在线创作、分享和发现优质内容的服务 。据微博 2022 年第一季度财报,微博月活跃用户为 5.82 亿,日活跃用户为 2.52 亿,平台日均处理万亿级消息 。
日均万亿消息 , Kafka 运维遇挑战
新浪现有 Kafka 集群主要处理来自新浪新闻、微博等的数据,数据类型包括特征日志、订单数据、广告曝光、埋点 / 监控 / 服务日志等 。这些数据经过 Kafka 在线集群、广告专用集群、日志集群、离线集群和机器学习训练等集群的处理后,会用于推荐训练、HDFS 落地、离线数仓、实时监控、数据报表和实时分析等生产目的 。
新浪在使用和运维 Kafka 集群的过程中,遇到的痛点有:
- Kafka 运维较困难,突发热点事件时扩容节点无法自动均衡 。在高流量峰值场景下,经常遇到了磁盘和 broker 达到瓶颈的情况 。Kafka 可以轻松扩容 broker,然而集群扩容时新增 broker 无法自动承载流量,需要较为复杂的人工运维操作 。
- 磁盘数据分布不均 , topic 分区流量分布不均 。随着业务波动,一些承载较大流量的 topic 下线后,其所在 broker 的流量和磁盘数据存储也会下降,类似情况多次发生后 topic 分区流量和磁盘数据分布就会失衡,需要人工干预来 rebalance 流量 。
- 迁移分区带来数据移动 , 容易造成问题 。流量 rebalance 需要迁移分区,相当于增加副本,在热点事件爆发、资源紧张时会造成更严重的后果 。
- 新浪单集群每日有万亿级以上消息写入,涉及到非常多的业务方与多语言客户端,因此迁移到其他消息队列较为困难 。
- 一些重要业务有很多作者不详的重要老代码,源码因故丢失,难以处理、迁移和改造 。
借助 KoP,落地 Pulsar
团队希望能有一个消息队列可以解决 Kafka 存在的这些问题,同时业务方只需简单修改配置,替换 Kafka 的 broker list 即可迁移 。基于这样的背景,团队调研了存算分离架构的 Apache Pulsar,可以很好地解决上述挑战 。Pulsar 的 bookie 和 broker 是分离的,而扩容时 bookie 可以自动承接新流量;broker 只承担一些元数据的计算工作,所以需要做 rebalance 时速度很快,无需数据移动 。
在调研 Pulsar 的过程中团队发现了 KoP 这个开源项目 。KoP 是开源项目 Kafka-on-Pulsar 的缩写,Kafka 用户可借助 KoP 插件无缝迁移到 Pulsar,充分利用 Pulsar 的诸多功能特性,以降低迁移成本(GitHub 地址:https://github.com/streamnative/kop) 。KoP 实质上就是用 Pulsar 提供的 Protocol Handler 机制来对接 Kafka 数据 。当 Kafka 集群写入数据时,通过基于 Kafka Protocol Handler 来操作 。KoP 复用了 Pulsar 的 topic lookup 机制和抽象的 Managed Ledger 存储层,将数据通过 bookie client 直接发送到 bookie 集群中,如下图:
推荐阅读
- 快手怎么查看快手号 快手怎么查看快手号状态
- 名爵zs雨刷怎么抬起来 名爵zs的雨刷怎么竖起来
- 《银行家》杂志社怎么样 银行家杂志是什么期刊
- word受保护的视图如何解除 word受保护的视图怎么解除
- 电脑开机慢运行卡怎么解决 电脑开机慢运行卡解决方法
- 龙须树叶子发黄干枯怎么处理 龙须树叶子发黄干枯怎么样处理
- 小土狗怎么养 小土狗如何养
- 微信对方拒收消息怎么解决 是怎么回事?
- 电脑qq怎么同步聊天记录 qq怎么同步聊天记录
- html怎么设置背景图片 html怎么设置背景图片大小