微信
18122438410

TiDB 在小红书从 0 到 200+ 节点的探索和应用

2019-09-10 16:37| 发布者: 星美传媒| 查看: |

小红书

  这些数据还可能会回灌到线上其他 database 上,有些是离线,有些是实时。

产品的部署及管理

  最后分享一下 TiDB 未来在小红书的接入方向。

  第三点是实时导出,即在实时场景下可能需要导出到消息中间件,比如 Kafka、RocketMQ 等。

  第一步,我们需要考察该数据服务/组件的基本功能,首先,我们要了解它的读写场景,包括点查、批量获取(batch get)、范围扫描(range scan)、过滤查询(filter query)、聚合查询(aggregation)等等。然后我们看看它是否符合响应时间(latency) 以及带宽(bandwidth,即能承接多少并发)的要求。最后我们会关注可扩展性,比如 TiDB 可能最大的特点就是扩展性非常好。这几点是大家都会想到的最基本的要求,,这里我就一笔略过。

  我记得之前有同事问了一个问题,说这个场景用别的东西也可以做,为什么一定要用 TiDB 呢?为什么要用牛刀来杀一只鸡呢?我回答他:有种情况是你找不到一只牛来杀,只能先“杀鸡”成功了,未来才有“杀牛”的机会,但是大家不要认为“杀鸡用牛刀”是一件很蠢事情,这可以理解为一个鉴定或者测试的过程。

  第四点是技术栈成本,因为有些人对 TiDB 不熟悉,会比较害怕接触和使用,绝大部分人更愿意用自己熟悉的东西,所以需要有一个知识学习的过程,这也是一个成本。

  第五点是考察附属组件,也就是与该数据服务组件强绑定的其他组件,比如 zk、lb、jmx_exporter 等等,这些组件的部署成本也需要考虑。我们需要减少 OPS 成本,或者说,一个好的整体架构设计能够防止业务疯狂上线时很多意外的出现。

  接下来考察离线导出,比如如果我们依赖 Hive、 Spark 做离线分析,那么可能要放在 HDFS、S3 等对象存储上,就需要离线导出,一般是每天导出一次。

  优化部分基本上分为配置调优、客户端代码调优、二次开发、三次开发。其中二次开发就是在现有的开源产品上再开发,修复 bug 或者自己实现某些新增功能/工具,未来可能还会贡献给社区;而三次开发则是自己写一个和某些组件类似的东西,直接替换掉。在小红书内部,二次开发是比较主流的,三次开发很少,毕竟从零开始自研一个组件到适应特定业务场景,其实是跟不上我们的业务上线节奏的,所以三次开发至少眼下不适合作为我们主要的攻坚方向。

  通过实时数据流(dataflow)将数据导入到离线数据库(offline database)支撑离线分析以及实时展示的场景,也就是图 1 最下层的展示类服务(presentation)和数仓(data warehouse)。

  项目 1:大促实时看板

  这个项目最终全程写入和查询在大促期间保持稳定,写入时延小于 20ms,查询时延小于 1s,因为我们需要 2s 做一次查询,这个响应时间是能满足要求的。

  如图 1 所示,小红书数据服务整体架构最上层是在线应用层(online app),应用层往下肯定会依赖一些离线(offline)或者在线(online)的 database(其实它更多的意义应该算存储,比如 Redis 也被我们理解为 database,所以称之为“数据服务”可能会更好),这些在线数据服务(online database)会有两条线:

产品可优化的空间

  第一,我们业务方有实时分析的需求,需要实时观测线上库写入内容,可能是针对某个用户做一些查询,还可能是一个非常大的 query,比如需要快速看到新上线功能的效果,尤其是在实验以及风控等项目上响应时间要求非常高。

  最后,我们已经有同事负责调研 TiFlash、Tidis,但目前还没有线上应用在依赖。同时我们也在做 CK 和 TiFlash 的对比调研,目前 CK 已经在线上提供服务,未来如果 TiFlash 的调研结论是比较优秀的,肯定也会有计划替换。

  本文根据近两年 TiDB 在小红书的落地过程,和大家一起探讨一下,小红书在新数据库选型的考虑因素、以及 TiDB 从场景分类的角度是如何考量及逐步推广使用的。具体包括以下内容:

  首先考虑这个数据服务组件的数据同步是同构或异构的场景,同构的同步比如 Redis to Redis、MongoDB to MongoDB,异构的同步比如 TiDB 到 Kafka 等等。这个情况基本上大家也会遇到,因为一个数据服务很难同时支持两种或更多的场景,不同的数据服务之间的数据要保持一致,就会产生数据同步的问题。

  第二部分是数据同步与处理相关解决方案。这里我们有以下 4 点考虑:

  项目 2:实时业务数据展示

  以上就是小红书的数据服务组件选型的 RoadMap,看起来跟接下来要讲的“TiDB 在小红书多场景下的应用”没有太大的关系,但我认为在做应用之前应该先把上面列举的这些方向思考清楚,这样会对未来落地工作的投入产出比产生非常大的影响,比如我们最近按照上面的方向调研 Tidis 和 TiFlash 的时候速度就快很多。

  图 1 蓝框中的部分基本上都由我们团队负责。我们首先需要保证在线数据库(online database) 的稳定性、安全性以及性能优化等,其次我们的多种数据库数据同步服务(database to database replication) 有点像阿里提出的 data replication center 这个概念,这部分也基本上由我们团队全权负责。

  第一个项目是大促实时看板,在去年双十一期间上线,当时我们的节奏也比较快,7、8 月开始调研,11 月就上大促业务。

  部署其实非常重要,它涵盖以下 5 个方面。

   运维的易用性

  项目 4 与项目 3 代码相比处理的场景更复杂一些,因为它之前 MySQL 的分库分表逻辑不像项目 3 那些清晰,集群规模也会相对大一些,目前是 25 个 TiKV 节点 + 3 个 PD 节点,未来可有扩容的需求。实现细节上,项目 4 和项目 3 类似,这里就不赘述了。

  第一点是代码更改成本,这一项成本已经比较低了,因为基本上都是 jdbc 连接,但多多少少会有一些变更。

  现在我们已经有一部分线上业务从 Hive 离线导入到 TiDB 做 T+1 级别数据服务,而且我们新上线业务的关系型数据库选型已经开始倾向于 TiDB,主要是因为它的扩展性为我们节省了很大的时间成本,尤其是业务增长比较快的情况下,选择 MySQL 分库分表其实是一件代价极其大的事情。

  这个场景下的第一个项目是做分库分表的 MySQL ETL。以最大的表为例,上游 10 节点的MySQL,共计 10000 个分表,存量数据 1000 亿条左右,每日增量 10 亿+,QPS 写入均值 3000 条/s,峰值接近 10000 条/s,平台促销活动对这部分影响也不大,甚至反而会降低,因为活动主要是电商部门在做,社区的查询需求反而变少。我们在 TiDB 离线 天增量监控数据,全量数据存在 S3 上,每日夜间(白天偶尔)会有基于 sqoop 的抽数任务触发。集群规模方面,目前使用 10 节点 TiKV + 3 节点 PD。

  第三点是运维成本,从原本的 MySQL 切换到我们自己维护 TiDB ,其实无形中增加了运维成本,尤其是在挂盘率比较高的场景下。

  场景 3:线上服务

  对于一个新的数据库或数据服务组件选型(如 TiDB),我们该从哪些方面去入手搞清楚它的特性?下面分享一下我们的经验。

  在实践细节上,首先我们会基于 Canal 去做 oplog/binlog 的实时同步。其次,目前我们对加列之外的 DDL 支持得不够好,这部分还需要 DBA 手工介入,但在未来会有一些改进。最后是多租户问题,比如判断某个部门的同事是否有权限访问另一个部门的数据库,这件事在线上会非常头疼,现在在接入层解决这个问题,我们内部有一个叫 venus 的展示平台,将上层全链控制、认证等事情去掉,所以我们就不用关注这件事了,至少眼下不用关注。这个项目已经开始逐步上线,基本上架构已经确定。

   产品的基本功能


本文地址:https://www.diwangzu.com/news/845.html
版权声明:本文为原创文章,版权归 直播人气网 所有,欢迎分享本文,转载请保留出处!
  • 产品推荐

今日头条图文原创_视频原

时间:2019-08-05 24小时 急速响应

怎么代开今日头条图文原创视频原创? 第一步:网页搜索直播人气网进入本站,或者直接输入域名https://www.diwangzu.com进入本

参与324人
8折优惠中
立即报名 查看详情

酷狗歌手认证女神认证

时间:2019-08-01 24小时 急速响应

酷狗音乐人是面向所有音乐艺人和唱片公司提供的数字音乐服务,致力于广泛推广并迅速扩大公司旗下艺人或独立音乐人的影响力。

参与223人
8折优惠中
立即报名 查看详情

头条号黄V认证-优质领域认

时间:2019-07-30 24小时 急速响应

认证用户区别于普通用户,强化身份识别,提高在头条平台发言可信度;基于身份,展示多元内容,促进个人品牌在头条平台成长;

参与786人
8折优惠中
立即报名 查看详情

头号领域认证-兴趣认证

时间:2019-07-30 24小时 急速响应

头条号所有领域:新闻、社会、娱乐、电影、科技、数码、汽车、体育、财经、军事、国 际、时尚、奇葩、游戏、旅游、育儿、瘦

参与207人
8折优惠中
立即报名 查看详情

酷狗繁星女神认证

时间:2019-07-30 24小时 急速响应

为了让用户可以第一时间识别您的身份,酷狗直播为独家艺人提供加v认证,符合条件的主播可自主提交申请,官方审核资料正确后给

参与316人
8折优惠中
立即报名 查看详情
相关标签
热门资讯更多
淘宝直播刷人气还有效果吗?最近很多直播间的播主和我们反馈说,我每天刷那么多淘宝直播...
最近有同行找我们聊天,说最近刷淘宝直播的人是不是越来越少了,感觉好久都没有人刷淘宝...
淘宝直播在线观看人数怎么刷?很多人做淘宝直播的时候,苦苦于没有人观看,有些商家直播...
最新独家更多

关注我们:直播人气网

微信

官方微信

微信

移动官网

全国服务热线:

18122438410

公司地址: 东莞市虎门镇虎门寨社区大莹服装电商城7楼A729

运营中心:广州市天河区羊城创意产业园

Email:renxi@diwnagzu.com网站地图

Copyright   ©2016-2019  直播人气网|星美传媒MCN旗下网站