计划概述
大数据时代,各类利用对音讯解决方案的要求不仅仅是数据的流动,而是要在持续增长的服务和利用中传输海量数据,进行智能的解决和剖析,帮忙业务做出更加精准的决策。
Pulsar 与 TiDB 联结解决方案提供实时、高吞吐、稳固的数据输入,满足用户在大数据场景中对各类数据的利用与剖析需要,宽泛实用于日志收集、监控数据聚合、流式数据处理、在线和离线剖析等场景。
Apache Pulsar 简介与劣势
Apache Pulsar(以下简称:Pulsar)是云原生的分布式音讯流零碎,采纳计算和存储分层的架构和以 Segment 为核心的分片存储,具备更好的性能、可扩展性和灵活性,是一款能够有限扩大的分布式音讯队列。目前,StreamNative 公司提供基于 Pulsar 平台的下一代流数据整体解决方案。
Pulsar 起初作为音讯整合平台在 Yahoo 外部开发和部署,为 Yahoo Finance、Yahoo Mail 和 Flickr 等雅虎外部要害利用连贯数据。目前,Pulsar 在雅虎寰球的 10 多个数据中心提供服务,具备全网格复制能力,反对 140 万个主题,解决超过 1000 亿条音讯,整体音讯的公布提早小于 5 毫秒。2016 年 Yahoo 把 Pulsar 开源并捐给 Apache 软件基金会(ASF),2018 年 Pulsar 毕业成为 Apache 软件基金会的顶级我的项目。
与大多数消息传递零碎的单片架构不同,Pulsar 采纳分层分片式的架构,服务层和存储层都可能独立扩大,以提供更好的性能、可扩展性和灵活性,这种设计对容器十分敌对,使得 Pulsar 成为流原生平台的现实抉择。
Pulsar 的企业个性包含音讯的长久化存储、多租户、多机房互联互备、加密和安全性等。Pulsar 提供和 Kafka 兼容的 API,以及 Kafka-On-Pulsar(KoP)组件来兼容 Kafka 的应用程序。KoP 在 Pulsar Broker 中解析 Kafka 协定,用户不必改变客户端的任何 Kafka 代码就能间接应用 Pulsar。
TiDB 与 TiCDC 简介
TiDB 是 PingCAP 公司自主设计、研发的开源分布式关系型数据库,是一款同时反对在线事务处理与在线剖析解决 (HTAP)的交融型分布式数据库产品,具备程度扩容或者缩容、金融级高可用、实时 HTAP、云原生的分布式数据库、兼容 MySQL 5.7 协定和 MySQL 生态等重要个性。在 4.0 之前,TiDB 提供 TiDB Binlog 实现向上游平台的近实时复制,在 TiDB 4.0 中,引入 TiCDC 作为 TiDB 变更数据的捕捉框架。
TiCDC(TiDB Change Data Capture)是用来辨认、捕获和输入 TiDB/TiKV 集群上数据变更的工具零碎。它既能够作为 TiDB 增量数据同步的工具,将 TiDB 集群的增量数据同步至上游数据库,也提供凋谢数据协定,反对把数据公布到第三方零碎。TiCDC 是 TiDB Binlog 的降级计划,提供低提早、高可用的数据订阅和同步服务,反对超大规模集群的程度扩大。
在 TiDB 生态链上,TiCDC 作为 TiDB 的数据进口有着十分重要的位置,其作用包含:构建 TiDB 主从和灾备零碎,链接 TiDB 和其它异构数据库,通过凋谢数据协定(Open Protocol)与第三方数据生态系统进行对接。
TiCDC Open Protocol 是一种行级别的数据变更告诉协定,为监控、缓存、全文索引、剖析引擎、异构数据库的主从复制等提供数据源。TiCDC 遵循凋谢数据协定,向 MQ (Message Queue) 等第三方数据媒介复制 TiDB 的数据变更。
Pulsar 与 TiDB 联结解决方案
在 TiDB v4.0.4 版本中,TiCDC 凋谢数据协定(Open Protocol)能够与 Pulsar 实现无缝对接,提供实时、高吞吐、稳固的数据输入,满足用户在大数据场景中对各类数据的利用与剖析需要,宽泛实用于日志收集、监控数据聚合、流式数据处理、在线和离线剖析等场景。
借助 Pulsar 所具备的 GEO-Replication 性能,Pulsar 与 TiDB 联结解决方案能够为 TiCDC 的消费者带来地理位置无关的变更事件订阅能力。同时,Pulsar 集群的疾速节点扩容、故障的疾速恢复能力能够为 TiCDC 事件的生产方提供更优的数据实时性保障。
需要摸索
伴鱼少儿英语
伴鱼少儿英语是目前飞速成长的互联网在线英语教育品牌之一,致力于打造更翻新、更酷、让学英语更无效的新一代互联网产品。
伴鱼少儿英语原先采纳的 Kafka 集群会遇到 Consumer Rebalance 问题,在剔除掉无奈生产或者过慢的消费者的时候,会对其余消费者造成因音讯过慢触发心跳超时等问题,Pulsar 在运维层面更不便和平安一些。
Pulsar 是原生反对跨数据中心的流数据同步计划,能够提供跨地区的复制性能,满足国内和海内数据中心机房双活的需要。此外,Pulsar 具备提早队列的性能,随着大量 Topic 的创立,仍然能够提供杰出的性能和提早保障,音讯扩散的落盘策略不会造成 IO 对磁盘的竞争。
基于上述起因,伴鱼少儿英语采纳了 TiDB 与 Pulsar 联结解决方案以满足外围业务的需要。
石基信息
石基信息是一家以提供酒店业信息系统整体解决方案为次要业务的高科技公司,次要从事酒店信息管理系统软件的开发与销售、系统集成、技术支持与服务业务。
在特定业务场景下,例如汇总寰球所有酒店餐饮团体下单店的支出核心,以及每个支出核心的不同生产类别实时的明细数据,则须要创立几十上百万的 Topic,Pulsar 能够反对百万级别 Topic 数量的扩大,同时还能始终保持良好的性能。
此外,原先的 Kafka 集群在节点扩大的时候,会触发 Consumer Rebalance,造成消费者解决工夫过长或者心跳超时等问题,给业务带来肯定的影响。石基信息布局采纳 Pulsar + TiDB + Flink 计划,构建面向未来的实时数仓解决方案,在满足应用层对分布式关系型数据库需要的同时,晋升实时的数据分析和服务效率。
最佳实际
知乎
知乎是中文互联网综合性内容平台,以“让每个人高效取得可信赖的解答”为品牌使命和北极星。知乎在首页个性化内容举荐、已读服务等场景中应用 TiDB 作为外围数据库,通过 TiCDC Open Protocol 输入日志到 Kafka,进行海量的音讯解决。随着业务量级的增长,在应用的过程中遇到了诸多因 Kafka 架构和历史版本实现上的限度而引发的问题。
单 Partition 数据量微小的 Kafka 集群不论是扩容还是故障复原都须要很长的工夫,业务无奈容忍长时间的不可用,所以只能抉择就义数据、重建集群的形式来放慢复原速度。Kafka Topic 过重的资源耗费导致在繁多集群上撑持数千乃至数万的 Topic 绝对艰难。
晚期版本 Kafka 不论是读取还是写入都须要产生在 Partition 以后沉闷的 Leader 上,读写流量都很高的集群会对 Broker 产生十分大的压力。Kafka 的一些问题在新版本中失去了解决,然而因为协定版本差异太大,无奈间接通过降级服务端的形式进行滚动降级。
鉴于以上遇到的问题,思考到 Pulsar 对原生跨地区复制(GEO-Replication)的反对同知乎将来基础设施云原生化的方向更加符合,知乎开始在一些业务中应用 Pulsar 替换 Kafka。
知乎对 TiCDC 的外围模块进行了一系列开发工作(https://github.com/pingcap/ti…),把 TiCDC Sink 与 Pulsar 进行对接,实现 TiCDC 的数据同步到 Pulsar。Pulsar 与 TiDB 联结解决方案曾经在知乎的 CMDB 我的项目中得以利用,解决了现阶段在 Kafka 上遇到的问题。
Pulsar 对跨地区复制(GEO-Replication)的反对为生产者和消费者提供了地理位置通明的连贯,生产者在任意数据中心生产的内容能够供任意一个数据中心的供消费者应用。分层存储(Tiered Storage)为大量历史数据的保留、审计、流量回放、低频明细历史事件剖析等需要提供更低成本的实现形式。从生产模式看从数据多个正本并发读取音讯的能力,极大地晋升了数据读取的扩展性。此外,提早音讯散发(Delayed Message Delivery)便于实现许多特定的业务逻辑,可用于代替一些绝对古老的历史技术计划。
目前,知乎对于 Pulsar 的利用处于晚期阶段,实际上线的业务数量占比拟小,从后期业务的实际来看,Pulsar 与 TiDB 联结解决方案的利用获得了现实成果。知乎将推动各项业务从 Kafka 向 Pulsar 进行全面的迁徙,将来也将利用 Pulsar 到跨集群同步 TiDB 数据的场景下。
相干资源
- TiCDC 实操指南:https://docs.pingcap.com/zh/tidb/stable/manage-ticdc
- Apache Pulsar 官网文档:http://pulsar.apache.org/docs/en/standalone/
-
Pulsar 与 Kafka 的比照:
- https://streamnative.io/blog/tech/pulsar-vs-kafka-part-1
- https://streamnative.io/blog/tech/pulsar-vs-kafka-part-2
About
PingCAP 成立于 2015 年,是一家开源的新型分布式数据库公司,秉承开源是根底软件的将来这一理念,PingCAP 继续扩充社区影响力,致力于前沿技术畛域的翻新实现。其研发的分布式关系型数据库 TiDB 我的项目,具备「分布式强一致性事务、在线弹性程度扩大、故障自复原的高可用、跨数据中心多活」等外围个性,是大数据时代现实的数据库集群和云数据库解决方案。目前曾经国内外近 1000 家用户将 TiDB 用于线上生产环境。
StreamNative 是一家围绕 Apache 顶级我的项目 Apache Pulsar 打造下一代流数据平台的开源根底软件公司,秉承开源是根底软件的将来这一理念,专一于开源生态和社区的构建,致力于前沿技术畛域的翻新,开创团队成员均是 Apache Pulsar 和 Apache BookKeeper 的外围 PMC 成员。