Apache 应用软件促进会(即 Apache Software Foundation,全称为 ASF)于日前正式宣布宣布,Apache InLong(之侧) 从创业项目组获得成功大学毕业,正式宣布成为促进会世界顶级工程项目。
Apache InLong 概要
InLong 英文名“之侧”是中国神话故事中导流大海的人面,寓意 InLong 在大统计数据街道社区自然生态中的价值:大统计数据网络连接应用软件系统。该工程项目起初于 2019 年 11 月由百度大统计数据项目组捐赠到 Apache 创业项目组,2022 年 6 月正式宣布大学毕业正式宣布成为 Apache 世界顶级工程项目。
InLong 以百度内部采用的 TDBank 为依据,借力万亿元左右的统计数据摄入和处置潜能,将统计数据采集、裂解、储存、次序统计数据处理的全业务流程资源整合在一起。不仅提供更多手动、安全、可信和高效能的统计数据传输潜能,还全力支持如前所述INS13ZD的统计数据挖掘、可视化和应用,帮助企业精简统计信息处置的过程。
比如说,InLong 作为一个如前所述 SaaS 的服务项目网络平台,采用者能选择主轴的统计数据发布和订户,来随心所欲快速地报告、数据传输和递送统计数据,大幅降低了采用准入门槛。同时 InLong 能为 100 万亿元左右统计报文提供更多高效能处置潜能,为 1000 亿左右统计报文提供更多高可信服务项目,保证采用者享用到稳定可信的新浪网服务项目。
InLong 全力支持多种统计数据出访方式,包括不同类型的消息堆栈服务项目应用软件系统和动态统计数据抽取、切换、读取以及如前所述准则的次序功能;在服务项目方面,InLong 为采用者提供更多标准化的科川和监视系统服务项目。通过mammalian的分项来促进统计数据可视化,采用者能在标准化的统计数据测度网络平台中直接查阅堆栈的运行状态,大大降低了业务的自觉性。
Apache InLong 的大学毕业,标志着业内第二个服务网络平台大统计数据应用软件系统 Apache 世界顶级项目问世,也标志着第二个由百度捐赠的 Apache 工程项目幼体获得成功,中国本土原生的世界顶级工程项目再增一员。
Apache InLong 在幼体期间,连续发布 12 个版本,关闭超 2300 个 Issue,来自国内外的街道社区开发者,一起完成了 Manager 元统计数据管理重构、如前所述 Flink SQL 的 Sort ETL 方案、如前所述标签的跨地域多集群等特性。目前 Apache InLong 正广泛应用于广告、支付、社交、游戏、人工智能等行业,为多领域客户提供更多高效化、便捷化的统计数据应用软件系统服务项目。
作为一个面向大统计数据应用软件系统的开源框架,Apache InLong 拥有架构上的优势,工程项目在发展的过程中逐渐形成了以下特点:
简单易用,如前所述 SaaS 模式对外服务项目,采用者只需要按主轴发布和订户统计数据即可完成统计数据的上报,数据传输和递送工作。稳定可信,系统源于实际的线上系统,服务项目近一百万亿元左右的高效能及上千亿左右的高可信统计数据统计报文量,系统稳定可靠。功能完善,全力支持各种类型的统计数据网络连接方式,多种不同类型的 MQ 应用软件系统,以及如前所述配置准则的动态统计数据 ETL 和统计数据分拣落地,并全力支持以可插拔方式扩展系统潜能。服务项目应用软件系统,全力支持标准化的科川、监视系统,以及mammalian的统计数据分项呈现,对于管道的运行情况,以统计数据主轴为核心的统计数据运营情况,汇总在标准化的统计数据分项网络平台,并全力支持通过业务设置的监视系统信息进行异常监视系统提醒。灵活扩展,全链条上的各个模块如前所述协议以可插拔方式组成服务项目,业务可根据自身需要进行组件替换和功能扩展。Apache InLong 技术亮点
低成本、高效能的 InLong TubeMQ
选用一款消息堆栈服务项目,需要考虑成本、性能、稳定性、可信性、可维护性等方面。在万亿元级别的海量统计数据场景,一般的消息堆栈服务项目需要通过大量的机器资源去堆积整体的吞吐潜能,会出现机器成本高、超大集群不易维护等问题。InLong TubeMQ 是 Apache InLong 全链路统计数据应用软件系统解决方案自带的一款消息堆栈服务项目,相比较业内主流的消息堆栈服务项目,拥有低成本、高效能、高稳定性的特点。InLong TubeMQ 是如前所述有损服务项目的前提下,采用尽可能保证统计数据不丢、服务项目不受阻的思路进行设计,力求方案简单维护简便。
在 TubeMQ 的设计里,分区故障并不影响 Topic 的整体对外服务项目,只要 Topic 有一个分区存活,整体的对外服务项目就不会受阻。同时,TubeMQ 的统计数据时延 P99 能做到毫秒级,这样保证了业务能尽可能快的消费完统计数据,做到尽可能不丢。另外,TubeMQ 独有的统计数据储存方案设计性能要比 Kafka 的 TPS 至少高出 50% 以上(有些机型上还是翻倍的效果),同时借助储存方案的不同,单机容纳的 Topic 数和分区数更多,进而能使得集群规模更大,减少维护成本。下图给出了 InLong TubeMQ 和 Kafka、Pulsar 的全方位对比:
当然,在整个 Apache InLong 的架构中,由于对消息堆栈的全力支持完成了插件化,InLong TubeMQ 并不是完全和系统耦合,而是作为一种可选服务项目提供更多给街道社区采用者。采用者可根据开发和采用经验,选择其它消息堆栈服务项目,比如说 Apache Pulsar 和 Apache Kafka。
如前所述 Flink SQL 的 InLong Sort ETL
随着 Apache InLong 的采用者和开发者逐渐增多,更丰富的采用场景和低成本运营诉求越来越强烈,其中,InLong 全链路增加 Transform(T)的需求反馈最多。为了全力支持该潜能,InLong 实现了如前所述 Apache Flink SQL 的 InLong Sort ETL 方案。首先,如前所述 Apache Flink SQL 主要有以下方面的考量:
Flink SQL 拥有强大的表达潜能带来的高可扩展性、灵活性,基本上 Flink SQL 能全力支持街道社区大多数需求场景。当 Flink SQL 内置的函数不满足需求时,我们还可通过各种 UDF 来扩展。Flink SQL 相比 Flink 底层 API 实现开发成本更低,只有第一次需要实现 Flink SQL 的转换逻辑,后续可专注于 Flink SQL 潜能本身的构建,比如说扩展 Connector、自定义函数 UDF 等。一般来说,Flink SQL 将更健壮、运行也将更稳定。原因在于 Flink SQL 屏蔽了 Flink 底层大量的细节,有强大的街道社区全力支持,并且经过大量采用者的实践。对采用者来说,Flink SQL 也更加通俗易懂,特别是对采用过 SQL 采用者来说,采用方式简单、熟悉,这有助于采用者快速落地。对于存量动态任务的迁移,如果其原本就是 SQL 类型的任务,尤其是 Flink SQL 任务,其迁移成本极低,部分情况下甚至都不用做任何改动。如前所述 Apache Flink SQL 的 InLong Sort ETL 方案,目前已全力支持 13 种常见的 Data Node,采用者也能如前所述该方案快速扩展新的 Extract Node 和 Load Node。另外,除了和 InLong Manager/Dashboard 搭配采用,提供更多全链路统计数据应用软件系统服务项目(称之为标准架构),InLong Sort 也全力支持独立运行(称之为轻量化架构),只需要准备 Flink 环境和 InLong Sort,就能快速完成小规模统计数据集的 ETL 处置。InLong Sort 整体的技术方案能见下图:
InLong DataProxy 为海量统计数据提供更多路由潜能
相比较其他统计数据应用软件系统解决方案,InLong 架构最明显的区别,在统计数据采集和消息堆栈中间,多了一个叫做 DataProxy 的服务项目。InLong DataProxy 主要有连接收敛、路由、统计数据压缩和协议切换等作用。DataProxy 充当了 InLong 采集端到消息堆栈的桥梁,当 DataProxy 从 Manager 模块拉取统计报文元统计数据后,统计报文和消息堆栈 Topic 名称对应关系也就确定了。当 DataProxy 收到消息时,会首先发送到 Memory Channel 中进行压缩,并采用本地的 Producer 往后端 Cache 层(即消息堆栈)发送统计数据。当消息堆栈异常出现发送失败时,DataProxy 会将消息缓存到 Disk Channel,也就是本地磁盘中。InLong DataProxy 整体架构如前所述 Apache Flume,扩展了 Source 层和 Sink 层,并对容灾转发做了优化处置,提升了系统的稳定性。下图为 DataProxy 统计信息处置业务流程:
InLong Audit 独立于统计报文的全链路审对账服务项目
InLong Audit 是独立于 InLong 的配套服务项目,主要用于对 InLong 全链路的 Agent、DataProxy、Sort 模块的入条数、入流量、出条数、出流量等进行动态审计对账,查阅统计报文是否有丢失或者重复,方便快速定位统计数据和服务项目异常。目前 InLong Audit 对账的粒度有分钟、小时、天三种粒度。InLong Audit 的整体架构图,能参考下方:
在整个 InLong Audit 审计流中,审计 SDK 嵌套在需要审计的子系统中,在统计报文级别进行统计数据埋点,并将审计结果发送到审计网络连接层。审计网络连接层将审计统计数据写到 MQ ( Kafka 或者 Pulsar) 的专门的审计 Topic 中,审计递送服务项目(AuditDds)消费 MQ 的审计统计数据,并将审计统计数据写到
MySQL/Elasticsearch/ClickHouse。在接口层,提供更多多个时间粒度将
MySQL/Elasticsearch/ClickHouse 的统计数据进行封装,向前端页面展示、审计对账等提供更多对账查询服务项目。“InLong 街道社区专注于为海量统计数据打造标准化的、服务网络平台的统计数据应用软件系统框架,帮助企业精简统计数据的网络连接、ETL 和递送过程”,Apache InLong PMC Chair 张超表示,“InLong 的大学毕业,标志着一个开放、多元、成熟的开源街道社区获得成功建立。感谢所有帮助过工程项目的所有导师、开源街道社区、贡献者等, 在未来的征程中,工程项目将继续践行 Apache Way,通过街道社区开发者的共同努力,助力企业数字化转型”。