墨天轮访谈 | 京东云曲艺伟:京东零售核心业务背后的数据库实践

分享嘉宾曲艺伟 京东云数据库产品经理
整理墨天轮社区

导读

大家好,我是京东云数据库产品经理曲艺伟,我今天和大家分享的主题是《京东零售Color 千万级QPS实时指标监控架构背后的数据库实践》。

今天我内容分为四个方面,“什么是Color网关”;它作为京东零售大促的关键环节,面临着怎样的考验;第三个部分我会介绍京东零售Color网关的最佳实践:比如面对千万级的QPS访问是如何保证监控指标实时响应等;最后为大家讲解京东零售Color网关监控指标实时智能拦截背后的产品技术—京东云自研的云原生数据仓库的优势。

什么是Color网关?

在介绍Color网关之前,我们先来了解一下什么是API网关。

API网关负责接收客户端的所有请求,并将请求路由到相应的后端服务,并提供接口聚合和协议转换同时通过调用多个后端服务,并聚合结果的方式处理请求,可以达到降低接入成本、提高效率、保障安全能力的效果。

京东零售Color网关作为API网关的技术服务,承载京东日均百亿的流量和调用,是大促保障的重要技术环节

图1 京东零售Color 网关

大促期间带来的考验

京东零售Color网关在大促期间面临着怎样的考验?我总结成了以下四点。

首先是对稳定性的考验。面临大促期间主站等核心业务高并发流量,网关作为业务流量直接承载方,需要保障各个服务接口的平稳运行。

第二点是对高可用的考验。网关承接了数以万计的后端服务接口,服务之间如何不会相互受影响,一个接口有问题不会影响其他接口的调用。

第三点是对可靠性的考验。作为流量入口,网关需要通过安全防刷与流控等流量安全策略,来保障网关面对海量流量场景下不被冲垮。

最后一个是对高性能的挑战。网关服务的可用性很大方面通过监控系统完善,需要实时了解网关性能和请求拦截情况,最终将流量处理结果汇聚到网关监控,进行观察决策。

图2 京东大促对Color网关的考验

我们可以发现监控服务其实是京东零售Color网关最核心的一个技术环节,那么如何去保障监控服务的一个实时性与稳定性呢?接下来就为大家介绍Color网关的架构。

Color网关架构选型与解决方案

1、原始架构 HBase的痛点

监控服务是网关系统的核心环节,能够实时监控系统运营状况、统计相关的数据指标、根据风险识别结果实时进行智能拦截。风险识别结果数据同步在Hbase支撑监控日志分析服务,但是我们在业务进展的过程中发现,Hbase在数据处理上存在明显短板,主要表现在以下几点:

  • 无法满足多维度聚合查询性能要求
  • 不支持时序维度处理无数据聚合能力(需要额外人工开发实现多维度聚合)
  • 存在有热点、耗内存的问题
  • 数据分析性能提升空间小,满足不了查询结果响应时间

针对HBase所带来的业务与性能上的问题,我们对零售Color网关进行了架构升级。

图3 原始架构 HBase的痛点

2、架构升级:云原生数仓方案

云原生数据仓库是基于Clickhouse 自研的一款存储和计算分离的产品。

从下面的架构图可以看到,零售Color网关的流量治理服务分为两类,一类是全量数据,离线写到结果报表里,再存到监控日志的服务;另一类是实时数据,通过消息队列Kafka到flink,去推到分布式计算任务,再推到云原生数仓,去实现实时的计算分析的服务。

图4 升级后的云原生数仓方案

相比较于Hbase,云原生数仓数据的处理性能整体提高60%(原1.92亿/min所产生的积压问题在架构升级之后完美解决,同比下性能可增长至3.1亿/min)。同时,由于云原生数仓采用计算和存储分离架构,用户可以根据实际业务情况实现秒级扩缩容,存储成本也有极大的下降。

3、传统数仓遇到的问题

首先传统数仓面临技术瓶颈。传统数仓架构复杂,有着使用成本偏高,查询延迟高,无法做到高并发和高可用,以及实时分析难以落地,或者是“分钟级”准实时的痛点。

第二点,传统数仓架构复杂。传统数仓的架构中组件众多,基础配置要求高,同时前期准备周期较长,启动困难。

最后使用成本偏高也是传统数仓的问题。硬件资源较难评估,计算和存储成本居高不下,并且运维复杂,人力成本难以降低。

4、业务爆发性增长下,京东需要的OLAP引擎

既然传统数仓有着诸多的问题与挑战,那么面对海量数据我们该如何去实现一个实时分析的需求呢?基于传统数仓的痛点,以及实际业务中的需求,需要一款高效率、高性能、低成本的OLAP引擎来支撑,我们考虑这款引擎应该具有以下的特性与优势。

首先是要降成本,我们采用了存算分离的架构。这样的架构帮助存储成本下降50%以上,同时达到快速弹性阔缩容的效果。

其次是高可用与超高性能的优势。海量数据能做到秒压级响应,同时满足高可用的特性,单节点失败不影响集群的稳定性。

最后,这款OLAP引擎需要满足“开箱即用”。可以在控制台点击、分钟级别创建集群,具备可视化监控报警与运维界面等相关功能,可以达到用户立即投入生产的效果。

图5 京东需要的OLAP引擎特征

云原生数据仓库的优势

1、云原生数据仓库的优势

为了能够应对爆发性增长的京东业务,业务需要这样一款高效率高性能低成本的OLAP引擎。为此,京东云自主设计和研发了云原生数据仓库产品,这款数据仓库具备了京东所需要的OLAP引擎的主要优势。

  • 极低的成本
    大幅降低存储的成本,每PB数据下可降低存储成本 80% 以上。

  • 极致的弹性
    计算节点可秒级的扩缩容,动态满足业务需求,极大的提高了资源的利用率。

  • 极简的使用
    控制台点击创建,分钟级别可创建PB级别实例
    提供可视化的监控管理平台和日志分析平台

图6 云原生数据仓库的优势

2、云原生数据仓库的架构

在数据库管控层中,采用了存储和计算分离的架构;云管平台层是前端接入控制台的功能,是提供给用户的接口操作,包括购买、支付、配置变更、资源申请、实例创建、实例删除、实例变更等操作。

图7 云原生数仓产品架构

3、云原生数据仓库在计算节点与存储节点中的优势

首先计算节点由于采用了这个计算和存储分层架构,它其实是一个无状态的计算执行引擎。因此计算层是可以仅仅只专注于对计算引擎实行动态的调配,这样可以极大提升计算资源的利用率。

图8 云原生数仓表现的计算节点的优势

不仅如此,存储节点也是一个无状态的数据引擎服务。如下图所示,存储节点被分为若干个小组,可以同时处理多个请求,同时节点的组内会根据一定的规则对数据进行操作。

图9 云原生数仓表现的存储节点的优势

那么采用这样存储节点组的一个好处是什么呢?即如果磁盘的IO成为瓶颈的时候,我们可以实现对存储节点的扩容来实现对IO的增加。不仅如此,我们还在存储层自研了多级缓存的机制,支持多级内存缓存和磁盘缓存,可以更快的实现存储数据的访问。

4、云原生数据仓库在秒级弹性的优势

最后我再来介绍弹秒级弹性的优势。用户不需要关注数据层面的任何东西,也不需要对数据进行重新分布,也无需关注存储节点的数据的存储的方式,用户只需要关注它的计算节点算力以及业务的分析与查询。

图10 云原生数仓如何实现节点扩容

5、云原生数据仓库帮助用户降低成本

最后,我会用几组数字来和大家说明云原生数据仓库如何在存储和计算分离的架构下,帮助用户去降低成本,带大家算一笔账。

首先云原生数据仓库采用多副本共享存储,帮助降低50%的成本

假设一个双副本的ClickHouse集群的存储成本是100%,它采用的是两副本,它的存储介质是云盘存储。

而云原生数据仓库采用的是分布式存储,也就是我们所谓的共享存储。所有的数据都是共享存储在我们的分布式存储引擎里,相当于是一副本。在存储副本层面,云原生数仓比双副本的CK下降了50%。

其次分布式存储的价格更低,分布式存储的价格为云盘/EBA的60%左右

最后云原生数据仓库的存储按照实际数据量计费,通常存储量为实际的50%-80%,这一点也帮助用户降低成本。

综合来看,云原生数仓比ClickHouse无论从数据副本、存储成本以及实际使用空间都有较大的成本节约,最多可以节省50-80%的存储价格。

图11 存算分离架构帮助降低成本

和大家分享一下在京东内部的业务中,采用云原生数据仓库业务的全景图。主要是分为两类,一类是实时数据的分析,另一类是离线数据的在线分析。

我们的云原生数据仓库已经支撑了京东零售,京东物流,京东科技和京东工业数十个核心的零级业务,包括商业智能的大屏分析、大屏的实时展示,促销选品的产品平台的建设,比如精准营销和广告投放,以及日志流量分析、监控分析等相关的业务。

同时云原生数据仓库中,存储和计算分离的架构能够实现在业务的高峰和低谷的计算资源,实现弹性的扩容和缩容,这也极大的帮助京东的内部用户降低存储的成本,仅需关注业务价值。

图12 云原生数仓现已支撑京东数十个核心业务

以上就是我今天分享的全部内容,谢谢大家!

更多精彩内容,欢迎大家观看现场视频回放与会议资料
视频回放:https://www.modb.pro/video/6328
会议资料:https://www.modb.pro/doc/60828


欲了解更多可以进入👉墨天轮,围绕数据人的学习成长提供一站式的全面服务,打造集新闻资讯、在线问答、活动直播、在线课程、文档阅览、资源下载、知识分享及在线运维为一体的统一平台,持续促进数据领域的知识传播和技术创新。

关注官方公众号: 墨天轮、 墨天轮平台、墨天轮成长营、数据库国产化 、数据库资讯

posted @ 2022-05-19 15:45  墨天轮  阅读(194)  评论(0编辑  收藏  举报