Apache ShardingSphere 在京东白条场景的落地之旅
京东白条使用 Apache ShardingSphere 解决了千亿数据存储和扩容的问题,为大促活动奠定了基础。
2014 年初,“京东白条”作为业内互联网信用支付产品,数据量爆发式的增长,每一次大促备战都是对技术人员的考验,每一次的战略转型驱动着数据架构的成长。
--张栋芳,京东白条研发负责人
京东白条数据架构演进史
- 2014~2015
- 通过 Solr 集群分担部分读和写的业务,缓解核心库的压力;
- Solr 扩展体验上欠佳,对业务也存在较大的入侵。
- 2015~2016
- 查询热点数据效率高,非结构化的存储方式易于修改表结构;
- 依然面对着扩展差、对业务入侵强的局面,而且耗内存。
- 2016~2017
- 该方案具有较强的数据实时性,扩展性良好;
- 基于业务框架的数据分片难以降低代码维护成本。
迫在眉睫的架构解耦
|
基于自研框架分片
|
基于 ShardingSphere 分片
|
|
|---|---|---|
|
性能
|
高
|
高
|
|
代码耦合度
|
高
|
低
|
|
业务入侵程度
|
高
|
低
|
|
升级难度
|
高
|
低
|
|
扩展性
|
一般
|
良好
|
- 聚焦精力:将基于架构的数据库拆分,交给分表组件实现,研发精力需聚焦于业务本身;
- 简化升级:解耦技术架构,简化业务系统升级工作的研发流程;
- 规划未来:为系统提供良好的扩展能力,从容应对“618”和“11. 11”等活动。
Apache ShardingSphere 解决方案
- 产品成熟:经数年打磨产品成熟度高,且社区活跃;
- 性能良好:微内核、轻量化的设计,性能损耗极小;
- 改造量小:支持原生的 MySQL 协议,研发工作量小;
- 扩展灵活:搭配使用迁移同步组件轻松实现数据扩展。

产品适配
- 升级 SQL 引擎
白条的业务逻辑非常复杂且庞大,多样化场景的需求对 SQL 的兼容程度有着较高要求,Apache ShardingSphere 重构了 SQL 解析模块,并支持了更多的 SQL。
- 路由至单数据节点 ,SQL 100% 兼容;
- 路由至多数据节点,可全面支持 DML、DDL、DCL、TCL 和部分 DAL。支持分页、去重、排序、分组、聚合、关联查询。
- 分布式主键
- 业务分片键值注入
- SQL 解析结果缓存
- JDBC 元数据信息缓存
- Bind 表 & 广播表的使用
- 自动化执行引擎 & 流式归并

业务割接
Apache ShardingSphere 带来的收益
- 简化升级路径
- 节省研发力量
- 架构灵活扩展
写在最后

加入交流群
Apache ShardingSphere 在京东白条场景的落地之旅的更多相关文章
- 重磅|Apache ShardingSphere 5.0.0 即将正式发布
Apache ShardingSphere 5.0.0 GA 版在经历 5.0.0-alpha 及 5.0.0-beta 接近两年时间的研发和打磨,终于将在 11 月份与大家正式见面! 11 月 10 ...
- Apache Sharding-Sphere
Sharding-Sphere 正式步入 Apache 基金会孵化器 - 开源中国 https://www.oschina.net/news/101691/sharding-sphere-enter- ...
- Apache ShardingSphere:由开源驱动的分布式数据库中间件生态
2021 年 7 月 21 日 2021 亚马逊云科技中国峰会现场,SphereEx 联合创始人.Apache ShardingSphere PMC 潘娟受邀参与此次峰会,以<Apache Sh ...
- Apache ShardingSphere 元数据加载剖析
唐国城 小米软件工程师,主要负责 MIUI 浏览器服务端研发工作.热爱开源,热爱技术,喜欢探索,热衷于研究学习各种开源中间件,很高兴能参与到 ShardingSphere 社区建设中,希望在社区中努力 ...
- DistSQL:像数据库一样使用 Apache ShardingSphere
Apache ShardingSphere 5.0.0-beta 深度解析的第一篇文章和大家一起重温了 ShardingSphere 的内核原理,并详细阐述了此版本在内核层面,特别是 SQL 能力方面 ...
- SQL 居然还能在 Apache ShardingSphere 上实现这些功能?
在去年 10 月 5.0.0-alpha 版本发布之后,Apache ShardingSphere 经历了长达 8 个多月的持续开发与优化,终于在 6 月 25 日正式迎来了 5.0.0-beta 版 ...
- Apache ShardingSphere 5.0.0 内核优化及升级指南
经过近两年时间的优化和打磨,Apache ShardingSphere 5.0.0 GA 版终于在本月正式发布,相比于 4.1.1 GA 版,5.0.0 GA 版在内核层面进行了大量的优化.首先,基于 ...
- Apache ShardingSphere 5.1.2 发布|全新驱动 API + 云原生部署,打造高性能数据网关
在 Apache ShardingSphere 5.1.1 发布后,ShardingSphere 合并了来自全球的团队或个人的累计 1028 个 PR,为大家带来 5.1.2 新版本.该版本在功能.性 ...
- Apache ShardingSphere 邀您相约 Open Source Day
Apache ShardingSphere 很荣幸接受 AnitaB.org 的邀请参加 OpenSourceDay Summer 2021 活动. Open Source Day (OSD) 是一个 ...
随机推荐
- Integer-源码
Integer 是java5 引进的新特性 先上一个小实验: public static void main(String[] args) { Integer a1 = 100; Integer a2 ...
- xxs攻击
1 XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中.比如这些代码包括HTML代码和客户端脚本.攻击者利用XSS漏洞旁路掉访问控制--例如 ...
- Http协议 压缩
先说结论:Request和Response可以设置gzip压缩从而节省流量/带宽,这是一个不常见的问题.具体可见连接:HTTP 协议之压缩 最近测试代理服务器时,意外的发现使用urlopen请求百度首 ...
- charles 抓包修改app页面数据
1,首先给手机安装Charles证书,安装官方的来,在无线网配置项目,输入手动代理地址,后开启飞行模式刷新网络, 2,在浏览器输入chls.pro/ssl 下载并安装证书,此时电脑端charles 会 ...
- 这篇 Java 基础,我吹不动了
Hey guys,这里是程序员cxuan,欢迎你收看我最新一期的文章,这篇文章我补充了一些关于<Java基础核心总结>的内容,修改了部分错别字和语句不通顺的地方,并且对内部类.泛型等内容进 ...
- Tars | 第8篇 TarsJava Subset最终代码的执行流程与原理分析
目录 前言 1. SubsetConf配置项的结构 1.1 SubsetConf 1.2 RatioConfig 1.3 KeyConfig 1.4 KeyRoute 1.5 SubsetConf的结 ...
- RSTP
一.STP协议的缺点,存在的问题 STP 协议工作时间收敛慢,响应时间长---------->RSTP 原始的802.1d(stp)不支持多个vlan---->(PVST===>把一 ...
- 技术栈:springboot2.x,vue,activiti5.22,mysql,带工作流系统
前言 activiti工作流,企业erp.oa.hr.crm等审批系统轻松落地,请假审批demo从流程绘制到审批结束实例. 一.项目形式 springboot+vue+activiti集成了activ ...
- 【OI】计算分子量 Molar mass UVa 1586 题解
题目:(由于UVa注册不了,还是用vjudge) https://vjudge.net/problem/UVA-1586 详细说明放在了注释里面.原创. 破题点在于对于一个元素的组合(元素+个数),只 ...
- 一起搞懂PHP的错误和异常(三)
关于错误与异常的最后一篇文章,我们来进行一些总结. PHP中错误和异常的区别 通过前面两篇文章的学习,我们来直接将错误和异常摆上来进行对比,看看他们的区别与联系: 错误的出现通常是语法或编译运行时错误 ...