京东云数据库架构实践
京东弹性计算实践
存储
XFS
文件系统
JFS
块存储
数据卷
日志
镜像分层合并
变更频繁 变更少 变更很少
应用层 基础层 OS层
镜像中心
配置中心
• App:CAP • Group:V2 • Env:Production
正式环境
分组1
配置中心
测试环境
分组1
正式环境
分组2
一个镜像部署到多个环境中,根据应用、环境和分组从配
置中心拉取配置。
OpenStack
01 成熟度 很成熟,社区非常活跃
02 快速交付
积累了很多经验,快速交 付成果
03 一套架构
公有云和私有云一套架构 。Windows虚拟机需求
Docker Driver
网络(OVS/VLan)
为了兼容现在的基础设施系统,满足用户习惯,每个容器都有独立的IP。 禁用了Docker网络,采用Neutron集成OVS; 优化OVS转发层,提升网络小包延迟,适用于微服务调用;
以一小时为单位,计算容器的资源最大使用率;
应用资源利用率
根据应用和容器的关系,统计应用资源使用率;
部门资源利用率
根据负责人、部门、应用和容器的关系,统计部门资源使用率;
一键伸缩
批量快照水平扩容; 批量水平扩容; 批量水平缩容; 批量垂直搜索;
应用部署巡检
定期巡检应用容器部署情况,邮件报告;
IDC资源
弹性计算平台 = JDOS(JD Datacenter OS)+CAP(Cloud Application Platform)。 JDOS实现实现基础设施(网络,物理机,存储)的资源管理、容器的生命周期管理、 监控指标采集; CAP负责应用治理、部署、监控报警、资源利用率统计、手动和自动的弹性伸缩。
京东青龙系统数据库架构演进
ü 自动收集所有系统慢SQL 日志,提高性能优化效率;
ü DBA审核后,自动发送邮 件;
ᕮ๕
2012 集中化
2014 垂直化
2015 水平化
2016
私有云
分Thank youѺ
等。
ԯդ-ᬩᖌ
统一监控 平台
MHA自动 切换
慢SQL平台
ü 开放数据库服务器监控查 询;
ü dbs,MySQL架构信息; ü Zabbix,MySQL数据库信
息; ü Mjdos,Docker系统信息;
ü 自动补齐数据,提高系统 可用性;
ü 自动切换域名,提高切换 效率;
方案
1.分库分表规则论证 2.代码重写&测试 2.MySQL数据库 3.Jproxy中间件
ԯຝ-ଘೆړ
ԯຝ
l 架构特点
高性能 l 分库分表 l 上百台MySQL集群 l SSD+IO卡
高可用 l 单库故障不影响全局 l MHA快速主从切换
运营支持
青龙门户 质控管理 时效管理 绩效管理 监控报表 财务
基础服务
基础资料 运单 消息总线 分库框架 序列服务
系统概况-架构演变
系统概况-智慧物流
փᕹຝ-ੜդ
传统Oracle企业架构,IBM 的AIX小机 RAC + DataGuard 方式 支撑业务上线
中小件件冷藏冷冻thegiaccom青龙业务正向物流极速达夜间配上门换新自提点柜乡村电商逆向物流财务物流开放平台上门取件精准达thegiaccom青龙模块划分外部拓展b商家客户端接货中o2o派单b商家合同crm配送官网乡村电商终端服务配送pda站点erp自提点3pl自提柜pda关电签收路由跟踪资归集快速退款运输运输pda车辆调度运输配置运输运营路由系统分拣分拣pda分拣服务缓存管理逆向物流预分拣运营支持质控管理时效管理绩效管理青龙门户监控报表财务基础服务基础资料运单序列服务消息总线分库框架车辆管理thegiaccom系统概况架构演变thegiaccom系统概况智慧物流thegiaccom传统oracle企业架构ibm的aix小机racdataguard方式支撑业务上线thegiaccom优点缺点优缺点thegiaccom优化和保护sql优化01应用限流连接数控制03数据结转02系统降级04架构优化redissolr05thegiaccomx86adgthegiaccomx86oracle数据库想要扩容难度很难特别是应用系统已经充分解耦的情况下架构很难再进行调扩展性emc高端存储三年的硬件维保到期pcserver硬件损坏的问题也很突出比如硬盘电源io卡使用寿命等问题时有发生
京东云架构介绍
JBUS抽取业务数据到JDS,支持跨机房数据备份 API
Jbus前端
API
MQ
全量模块
Worker…
JBUS 系统结构
DB 全量模块
增量变化数据
源数据库 1(Master)
状态报告/任务控制接口
Jbus_extractor (增量抽数)
Canal server
Jbus_loader (增量导数)
Canal client
• 文件系统 – 每日接受2亿文件上传的海量存储系统
• 云存储 – 高可用、高可靠、低成本的对象存储服务
• 块存储 – 为虚拟化、数据库等场景提供可靠的块设备抽象
Private Client Libraries
Public RESTful API
Block Storage Abstraction
Jingdong Elastic Storage Platform
Scribe
Storm
supervisor
IO
适
JMS
配
器
From
Where
GroupBy
Aggregate
Select
IO
适
Join
配
From
Partial
Aggregate
Sort
器
Zookeeper
nimbus
SAF
EPL组件
Filter
Projection
Sort PartialAggregate
• 短地址服务系统提供网址缩短服务,目的将url进行字符串压缩,变长地址为短码进行 页面定向。电子商务兴起后,分享商品成了客户的最爱使用得项目。短地址利于公司 站点推广,解决移动端代下单时遇到的长地址导致操作不畅等情况。对外亦提供saas 服务,再者侦听来源客户的点击流信息。支持多用户同一地址对应不同短地址;支持 点击量、来源、地域的实时分析。
京东服务框架实践
App1
App2
App3
DB 交互通过DB来进行行
Data
Store
Data
Store
Data
Store
交互通过同步/异步接口口来进行行
为什么要打造服务平台
服务⻔门户 存活监控 调用用分析图表 服务性能数据收集
服务调用用 服务寻址 服务发布
配置查看/推送 降级 限流 负载均衡
magic full length
协议/序列化/消息.. 消息ID 扩展描述 2000
ad cf 00 00 00 7f 00 0f 01 0a 01 00 00 00 0e 16 01 01 01 00 00 07 d0 97 91 c2 da 00 2f 63 6f 6d 2e 6a 64 2e 6a 6c… …
14
JSF核心心技术-性能优化
蓝色色一一代框架 红色色二二代框架
15
JSF核心心技术-注册中心心
A机房
服务注册
客户端
服务寻址
注册中心心数据库
配置管理
服务注册
B机房
客户端
服务寻址
配置管理
优先访问本机房注册中心心,各组件均有本地容灾缓存
16
JSF核心心技术-注册中心心
A机房
注册中心心数据库
客户端
Connection Manager
2.注册中心心 • zookeeper作为注册中心心,功能定制扩展受限、性能有瓶颈;
3.服务治理 • • • 缺乏流控手手段,大大流量打爆线程池; 更改配置需重启,对运营不够友好; 缺乏调用用监控,没有调用用分析图表;
6
重装上阵!
7
新服务平台JSF
王超_京东云数据库技术分享
JProxy实践(2)
• 之前后端实例链接池是以库为单位,当后 端实例上有很多库的时候,连接数撑爆 • 解决方案
– 现在改为以实例为单位
JProxy实践(3)
• jproxy execute线程数开得过大,导致mysql write超时,mysql关闭后端链接,导致 jproxy read到EOF异常 • 解决方案:
京东云数据库技术分享
yfwangchao@ @superman养乐多 王超
概述
• JCluster技术分享 • 京东MariaDB服务介绍 • FAQ
JCluster原理
• JCluster = 云数据库 + 数据库代理层
JCluster架构设计-JDS
ቤተ መጻሕፍቲ ባይዱ
JCluster架构设计-JProxy
• • • • • 分库分表 无缝升级 SQL过滤 在线数据迁移 简单事务支持
JCluster备份和恢复技术
• 特点
– 近实时备份 – 对原数据库几乎无影响 – 可恢复到7天内任意时间点
• 技术
– 基于LVM快照技术 – Binlog行模式下操作逆等性
JCluster备份和恢复技术(1)
• LVM
MariaDB云服务申请(2)
MariaDB云服务申请(3)
MariaDB云服务申请(4)
MariaDB云服务申请(5)
MariaDB 云服务申请(6)
MariaDB云服务申请(7)
MariaDB云服务申请(8)
• 谢谢大家
– 将mysql write超时设置调高, 并将jproxy execute线程数改小。
JAE-京东PAAS实践知识资料
第4页
知名国外PaaS平台
名称 AWS Beanstalk 公司 Amazon 类型 闭源 发布时间 2011年1月
Cloud Foundry
Engine Yard
Vmware
Engine Yard
开源
闭源 闭源
2011 年 4 月宣布开 源 2006年成立
2008年
Google App Engine Google
基础设施-代码托管
提供类似于Github方式的代码托管服务 创建应用的时候自动创建一个代码库 可以部署指定版本的代码
完善的管理界面
云平台
第21页
基础设施-云编译
解决JAVA应用只能上传包的问题 支持Maven项目 编译历史、编译日志、包下载
编译好的包可以直接部署
云平台
Automation
Utility-grade instrumentation Auto Scaling and Load Balancing
Multi-tenant architecture Integration with XaaS
Web Services and databases are most important Third party plug-in
1
PaaS简介
2
我们的实践
云平台
第8页
使用框架-CloudFoundry
选择的理由
开源
不愿意重复造轮子
Framework支持多
Java:Grails、List、Spring Ruby:Rack、Rails3、Sinatra Python:Django、Wsgi Node.js PHP Standalone
京东HBase大数据平台异地多活实践
京东HBase大数据平台异地多活实践目录1.HBase Replication原理 (3)2.JDHBase异地多活架构 (5)3.集群切换 (9)4.自动切换 (12)5.动态参数&自动调速 (14)6.串行Repication (15)7.总结与展望 (17)JDHBase在京东集团作为线上kv存储,承担了大量在线业务,11.11、6.18 均经历了每天万亿级读写访问请求,目前规模达到7000+节点,存储容量达到了90PB。
场景涉及商品订单、评价、用户画像、个性推荐、金融风控、物流、监控等700+业务。
JDHBase上承载了大量核心业务,遍布全球多个Data Center。
为了保障业务稳定不间断运行,我们构建了JDHBase集群的异地多活系统。
本文主要介绍我们在异地多活系统的实践。
1.HBase Replication原理HBase是典型的LSM(Log-Structured Merge-Tree)结构数据库,服务端响应客户端写请求过程中,会写入Memstore(内存)中和顺序的写入WAL日志(HDFS文件)中,WAL日志确保数据真正写入磁盘,从而在节点故障时恢复未被持久化的内存数据。
HBase的Replication是基于WAL日志文件的。
在主集群中的每个RegionServer上,由ReplicationSource线程来负责推送数据,在备集群的RegionServer上由ReplicationSink 线程负责接收数据。
ReplicationSource不断读取WAL日志文件的数据,根据Replication的配置做一些过滤,然后通过replicateWALEntry的rpc调用来发送给备集群的RegionServer,备集群的ReplicationSink线程则负责将收到的数据转换为put/delete操作,以batch的形式写入到备集群中。
因为是后台线程异步的读取WAL并复制到备集群,所以这种Replication方式叫做异步Replication,正常情况下备集群收到最新写入数据的延迟在秒级别。
京东分布数数据库系统实践
目录
➢ 背景 ➢ 系统介绍 ➢ 实现原理 ➢ 实践经验 ➢ 小结
系统介绍——架构
系统介绍——模块
➢ JProxy原生MySQL协议,接入使用标准MySQL客 户端,根据路由规则将数据进行分库分表,对业 务访问透明
➢ JManager统一维护路由
➢ JTransfer负责分库在实例之间的迁移,分库容量 满,可以使用JTransfer快速在线无缝迁移,不影 响业务
➢ JMonitor监控整个系统的状态
实现原理—JProxy内部实现
实现原理—在线迁移
实现原理—IO模型
实践经验
客户端方案VS代理方案
连接数
读写分离
读写分离
服务高可用
➢ 业务如何无感知 ➢ 中间件是否要支持主从切换 ➢ 跨机房如何搞定
分布式事务
监控
➢ 存活监控——UMP监控系统 ➢ 资源监控——MJDOS监控系统 ➢ 系统内部状态监控——JMonitor系统
监控—系统状态可视化
➢ 用户监控 ➢ 前后端连接数 ➢ 慢源使用率
京东企业组织结构调研报告
京东企业组织结构调研报告1.引言"1.1 概述:本报告旨在对京东企业的组织结构进行深入调研和分析。
京东作为中国最大的综合零售商,其组织结构是公司运作和管理的基础,对公司的发展具有重要意义。
通过对京东企业组织结构的概况及其特点、优势和挑战的分析,旨在全面了解京东企业的组织模式,为公司未来的发展提供参考和建议。
在本报告中,将分别对京东企业的组织结构概述、特点以及优势与挑战进行详细介绍和分析。
"1.2 文章结构文章结构部分旨在介绍本篇报告的整体结构安排,方便读者对整篇报告有一个清晰的认识。
本文主要分为引言、正文和结论三个部分。
引言部分包括概述、文章结构和目的三个小节。
在概述部分,将简要介绍京东企业组织结构调研的背景和意义;文章结构部分将对整篇报告的章节结构进行介绍,让读者对文章内容有一个整体的认识;目的部分将阐明本文调研的目的和意义,为后续内容提供一个基本的框架。
正文部分包括京东企业组织结构概述、京东企业组织结构特点和京东企业组织结构优势与挑战三个小节。
在这一部分,将对京东企业的组织结构进行详细的介绍,包括其整体架构、各部门设置及职能分工等内容,同时分析其特点和存在的优势与挑战。
结论部分包括总结、建议和展望三个小节。
在总结部分,将简要总结文章对京东企业组织结构的调研成果;建议部分将提出针对性的建议,帮助京东企业改进和完善其组织结构;展望部分将对未来京东企业组织结构发展趋势进行展望和探讨。
1.3 目的目的部分的内容应该着重介绍本篇报告的研究目的,说明为什么要对京东企业组织结构进行调研。
可以包括以下内容:1. 为什么选择研究京东企业组织结构?说明京东在中国电商行业的地位和影响力,以及企业组织结构对于企业管理和运营的重要性。
2. 阐明调研的目的是为了深入了解京东企业组织结构的特点、优势和挑战,为企业发展提供参考和建议。
3. 强调本调研报告的目的是为了帮助读者更全面地了解京东企业组织结构,并为企业管理者、学者和其他相关人士提供有益的参考和启发,促进企业管理理论和实践的进步。
京东大数据基础架构和实践
如下是订单表的多分区设计,
dp=HISTORY/dt=2014-06-22/end_date=4712-12-31 ...... dp=HISTORY/dt=2014-06-23/end_date=4712-12-31 dp=HISTORY/dt=2014-06-24/end_date=4712-12-31 ...... dp=EXPIRED/dt=2013-10-11/end_date=2013-10-11 dp=EXPIRED/dt=2013-10-12/end_date=2013-10-12 dp=EXPIRED/dt=2013-10-13/end_date=2013-10-13 dp=EXPIRED/dt=2013-10-14/end_date=2013-10-14 ...... dp=ACTIVE/dt=4712-12-31/end_date=4712-12-31
JDMP-Graphx图计算
加入我们
京东大数据平台
我们招聘
-Hadoop/Hbase/Spark开发 -运维工程师 -分布式数据仓库工程师 -BI工程师 -数据挖掘工程师 -等等…….
谢谢大家!
京东大数据基础架构和实践
目录
大数据 京东大数据平台 我们技术突破 JDW&Jmart JDMP数据挖掘平台 展望
大数据
少说些漂亮话,多做些日常平凡的事情
京东大数据平台
我们的技术突破
• 分布式系统技术突破
– 稳定性、性能、HA、故障恢复、多集群、运维和管理
• 多用户共用平台
– 数据安全、隐私保护
调
Jmart
JDW
京东 分析师
知识管理 平台
京东数据库设计
京东数据库设计数据库是京东电商平台的核心基础设施之一,用于存储和管理所有与商品、用户、交易等相关的数据。
一个良好的数据库设计是保证京东电商平台高效运转的关键之一。
1. 数据库架构设计京东电商平台的数据库采用分布式数据库架构,以提高数据处理能力和可伸缩性。
主要包括:- 数据库服务器集群:由多个主从数据库服务器组成,每个服务器都有自己的独立存储,同时还有冗余备份,以确保数据的可靠性和高可用性。
- 数据库分片:将数据库水平分割成多个分片,每个分片存储部分数据,以提高查询和写入性能。
- 数据库缓存:使用缓存服务器,如Redis,来缓存热门数据,加速对数据的访问。
2. 数据库模型设计京东数据库主要包括以下几个核心模型:- 商品模型:包括商品信息、价格、库存等数据。
每个商品有唯一的商品ID,可以根据商品ID查询商品的详细信息。
- 用户模型:包括用户账号、密码、个人资料等数据。
每个用户有唯一的用户ID,可以根据用户ID查询用户的个人资料和订单信息。
- 订单模型:包括订单号、购买商品、价格、支付状态等数据。
每个订单有唯一的订单ID,可以根据订单ID查询订单的详细信息。
- 购物车模型:包括购物车ID、商品数量、用户ID等数据。
每个购物车有唯一的购物车ID,可以根据购物车ID查询购物车的商品列表。
- 支付模型:包括支付ID、订单ID、支付状态等数据。
每个支付有唯一的支付ID,可以根据支付ID查询支付的详细信息。
- 评价模型:包括评价ID、用户ID、商品ID、评分、评论内容等数据。
每个评价有唯一的评价ID,可以根据评价ID查询评价的详细信息。
3. 数据库表设计根据数据库模型设计的各个模型,可以设计出相应的数据库表,例如:- 商品表:包括商品ID、商品名称、商品描述、商品价格、商品库存等字段。
- 用户表:包括用户ID、用户名、密码、手机号码、邮箱地址等字段。
- 订单表:包括订单ID、用户ID、商品ID、购买数量、订单状态、下单时间等字段。
京东物流仓储数据分发平台架构实践及挑战
京东物流仓储数据分发平台架构实践及挑战
目录01 平台介绍
02 架构演进过程
03 平台技术挑战
04 未来技术展望
数据分发平台作为仓储大动脉,是仓储系统之上的数据网
关,是连接仓储系统和京东商城平台、物流开放平台、京
东云仓平台的纽带。
是整个仓储系统中最为关键的一环。
负责订单、商品、商家等数千种业务数据的下发以及仓储各生产环节的状态回传,涉及全球550+个仓储中心。
主要功能包括平滑仓库接收数据;避免高峰流量对仓储系统的冲击;对不同的API 进行协议转换;仓储系统的数据路由。
数据分发平台(DTC)
平台介
绍
仓储中心分布广仓储中心分布在全球各地请求数据量大业务请求日均调用量数达到百亿级实时性要求高业务数据分发实时性要求高
仓储中心数量多全球仓储中心数量达到550+业务类型多
支持仓储作业上千种业务类型下传和回传网络环境复杂
大多数为园区化部署,各园区网络
情况复杂多变
JSF协议JMQ协议HTTP协议RESTFUL协议SOAP协议FTP
协议
目录01 平台介绍
02 架构演进过程
03 平台技术挑战
04 未来技术展望
仓储中心数量少,上游系统直接配置仓储中心数据库操作。
对外提供WebService
服务,同
时调用下游仓储中心各协议类型服务。
为提高系统吞吐量,引入消
息机制和缓存机制,同时将应用按职责进行拆分、做到高扩展性。
单应用模式智能分布式模式
传统分布式模式原始模式平台演进过程
为提高系统容错机制、引入业务日志、异常业务数据监控、异常报警等功能。
京东云数据库架构实践
一键上云
多模式选择
数据分析
更多功能...
业务:网站 + 订单
数据:几十~几百笔订单
DBA :研发人员兼职 数据库类型:MSSQL
历史数据
业务:
网站 订单 商品 用户 配送
、列表 、财务、支付 、评论、 价格 、仓储
数据:数万笔订单 DBA人员: 3 ~ 5人,监控系统 数据库类型:MSSQL + MySQL + Oracle
….
跨机房异地复制
弹性计算服务
网络
子网 自定CIDR 连接路由器 公网IP 绑定/解绑资源 DDoS防护 负载均衡 可选转发规则 后端云主机管 理 健康检查 Web应用防护
存储与CDN
云数据库 云缓存 多种配置 主从切换 备份创建 内网访问
云存储 CDN 高速分发 域名加速 在线处理 缓存配置 权限控制 资源监控 防盗链
云主机
云存储 其他云服务 公有云 京东云
专属物理服务器 托管IT资产
运维
托管云
用户IDC
实时备份,永不丢失
监控系统
快速部署上线
功能
自动高可用
实时灾备数据
灵活扩容缩容
使用简便
安全、稳定、可靠
解放DBA
提升效率
快速部署,便捷运维 —— 即时创建资源,数分钟便可完成包括高可用、监控、告警在内的整个数据库环境的部署,可以立刻投入生产 运行,立即创造价值。 —— 通过web界面可完成大部分日常运维操作,实时监控系统运行状况,并有专业团队在后台7*24小时守护,随时 解决您的各种疑问。 性能优异,稳定可靠 —— 全SSD 本地磁盘,提供强大的IOPS能力,解决数据库IO瓶颈。 —— 运行环境及参数经过精心优化,提供大多数场景下的最优设置。 —— 通过SQL Server镜像提供一主一备的高可用环境,主机数据实时同步到备机,发生故障自动秒级切换,确保业 务影响最小。 弹性扩容,一键升级 —— 可根据实际需要合理配置CPU ,内存,硬盘资源,避免浪费;可随时按需扩充资源,满足业务快速发展的需要。 —— 升级资源快速简便,可在控制台中一键完成,升级过程几乎不影响业务的正常访问和使用。 安全防护,抵御攻击 —— 宿主机位于多重防火墙的保护之下,并安装各种系统补丁,修补安全漏洞; 只开放必需的端口,能够抵御各 种恶意攻击,保障数据库安全。 —— SQL Server实例运行在逻辑隔离的私有网络(VPC)中,并通过VPN 或专线连接,避免了数据库直接暴露在公 网上,防范各种攻击。 —— 具有VPC 、ACL、安全组、DDoS 防护等多种安全机制,可抵御绝大部分网络攻击
没白来!阿里、京东、财付通、去哪儿网数据库架构图到手!
没白来!阿里、京东、财付通、去哪儿网数据库架构图到手!
随着IT架构的不断演进,云计算必定会成为未来所有IT应用的基石。
作为公司数据存取的重要平台,数据库架构设计一直是众多架构师的痛点。
随着众多数据库组件的诞生,这件事就变得愈发棘手了。
因此,知名互联网企业的数据库架构设计参考图非常有参考性。
在SACC大会《数据库架构设计与实践的前世今生》专场中,来自阿里巴巴数据库存储技术专家吕建枢,京东云数据库技术负责人张成远,去哪儿网数据库架构师黄勇、财付通高级DBA成江东、京东金融数据库团队负责人高新刚分享了各自所在企业的大数据平台架构图。
京东金融多场景架构图:
京东金融数据库高可用架构设计:
去哪儿网QMHA基本架构:
财付通核心基本架构:
财付通核心架构——分布式管控系统:
阿里巴巴数据库架构设计:
京东云数据库架构设计:。
京东电商平台架构设计
618经验
2 JD架构
业务架构
2 JD架构
京东IT架构
2 JD架构
架构分解
应用架构
数据架构
基础架构
3 JD架构
应用架构图
2 JD架构
交易中心
2 JD架构
数据架构
2 JD架构
数据架构
2 JD架构
基础架构
目录
CONTENTS
架构愿景
JD架构 架构原则
618经验
3 架构原则
总体原则
1
业务平台化
2
抽象化
1. 基础业务下沉 2. 可复用
1. 服务抽象化,引用不需要关心服务实现 2. 应用集群抽象化,集群位置透明 3. 数据库抽象化,应用程序用逻辑SQL操 作数据库
总体原则
4. 服务器抽象化,应用系统不需要关心实 体机的位置或数量,只关心资源
4
容错设计
1. 核心服务自治,服务能够被 彼此独立的修改、部署、发 布新版本和管理 2. 应用系统集群,可水平扩展 3. 多机房部署,多活
利用虚拟化技术减少服务器成本多快好省构建超大型电商交易平台兼顾效率和性能达到高人效高时效和低成本的目的架构愿景可用性可扩展性成本需求响应快质量要求架构愿景质量要求概念完整性可测试可用性互操作性能可靠性可伸缩安全性易用性总体架构原则架构愿景可用性可扩展性成本contents架构愿景jd架构架构原则618经验业务架构jd架构京东it架构jd架构架构分解jd架构应用架构基础架构数据架构应用架构图jd架构交易中心jd架构数据架构jd架构数据架构jd架构基础架构jd架构contents架构愿景jd架构架构原则618经验总体原则架构原则可复用容错设计核心服务自治服务能够被彼此独立的修改部署发布新版本和管理多机房部署多活总体原则不同业务域之间尽量异步化如交易与支付之间履约与仓储之间数据库抽象化应用程序用逻辑sql操作数据库服务器抽象化应用系统不需要关心实体机的位置或数量只关心资源服务设计原则架构原则不同特点的服务解耦
京东架构演进
京东架构14代——云平台承载系统
把多台物理服务器虚拟化后,构成一个资 源池,实现共同计算,共享。
云服务的共享的计算资源,因为二者峰值 时段不重叠,只需要配备满足两个应用中 峰值需求较大的那个的资源就足够了。这 样闲置资源减少、提高资源的利用率。
云服务器则将成千上万个这样的应用分配 到一个共享的平台上,经济效益非常可观。
京东架构2代——应用服务器和数据库分库部署
应用服务和数据库分别独占服务器资源,这 样能够缓解服务占用资源大的问题,能显著 提高两者性能
问题: 用户在增长时候,并发读写都在同一个数据 库,数据库的压力变大,数据库成为瓶颈
ቤተ መጻሕፍቲ ባይዱ
京东架构3代——引入本地缓存和分布式缓存
应用服务器增加本地缓存,在外部增加分布式缓存, 另外缓存热门数据和一些静态页面,通过缓存把大多 数请求,在我们读写数据库之前拦截掉,这样的话数 据库压力就降低了。 问题: 1. 缓存抗住了大部分的请求,用户增长,大部分的 请求落到了应用服务器上,导致应用服务器响应慢。 2. 通过本地缓存和分布式缓存还是无法解决问题, 数据库抗住了,但是应用服务器又扛不住了。
京东架构5代——数据库分库
当数据库成为瓶颈的时候,数据库要进行业务 的分库,数据库分为读库和写库,读库可以有 多个,通过数据库的同步机制,把写库的数据 同步到读库。通过Mycat,SharedingJDBC等等 数据库中间件,实现数据库的读写分离数据的 同步和数据的一致性 问题: 业务增长,不同业务之间访问的差距比较大, 相互竞争数据库资源,影响性能
京东架构6代——数据库按业务分库
按照业务分库,同样使用分布式缓存,数据 库按照业务划分,不同的业务保存到不同的 数据上。
问题: 业务和用户量增加,单机的写库会逐渐达到 性能的瓶颈
京东弹性数据库技术架构
数据迁移
不是在迁数据 就是在迁数据的路上
痛点
基于DNS方式
基于服务发现
• 发展历程 • 整体架构 • 集群调度 • Resharding • 故障迁移
整体架构
网关架构
Transfer架构
数据迁移工具
• 发展历程 • 整体架构 • 集群调度 • Resharding • 故障迁移
Cloud Native定义
操作 添加从库/拆分分片
分片拆分
合并分片/垂直扩缩/迁移缩容
增加新异地数据中心/添加异地从库 读取场景:添加从库/拆分热数据分片
写入场景:拆分热数据分片
Resharding
Shard A shard is a division within a keyspace. A shard typically contains one MySQL master and many MySQL slaves.
京东弹性数据库技术架构
技术创新 变革未来
目录
• 发展历程 • 整体架构 • 集群调度 • Resharding • 故障迁移
发展历程
2011
MySQL Oracle SqlSer ver
2014
MySQL
2015
JProxy
2017
京东弹性 数据库
痛点
资源使用 不合理
单机性能瓶颈
分库分表 水平扩展
如果首先迁移了master,replica和rdonly还是原来的Shard提供服务, 这时Source Shard数据已经不更新了,相当于replica和rdonly在使用 一份历史快照数据提供服务。
Resharding
迁移master的主要步骤:
京东弹性数据库的最新实践
京东弹性数据库的最新实践京东弹性数据库不是一个单一的产品,而是京东在对数据库的使用、运维和开发过程中遇到的一系列问题的解决方案,和运维经验的总结升华进而形成的一套产品系列,主要包括三大功能模块:1.核心功能模块:JED,提供数据查询和写入的自动路由、自动弹性伸缩、自动FailOver、自动负载调度和数据库服务智能自治的功能。
2.实时数据发布与订阅模块:BinLake,完全自助、无状态、自动负载、完全自治、可横向扩展的集群化Binlog采集和订阅服务。
3.自动化运维模块:DBS,实现了京东线上所有数据库服务申请、DDL/DML上线、数据抽取等的流程化和自动化。
分享大纲:1、发展历程2、功能特性3、整体架构4、实现细节5、使用情况一、发展历程在我2011年加入京东之初,京东的数据库正是处于诸侯混战的阶段,各种数据库都有,包括:MySQL、PostGre、Oracle、SQL Sever,在2011年之后,开始去IOE,到了2014年,京东基本上完成了去IOE,所有的业务系统都迁移到了MySQL上。
在大规模使用MySQL的过程中,我们发现,随着业务数据量的增长,很多业务开始了漫长的分库、分表之旅,起初各个业务系统在自己的业务代码中维护分库分表的路由规则,而且各个业务系统的路由规则和整体设计都不一样,后来由于人员更迭以至于业务代码无法维护,不同业务使用的数据库分库分表模式不尽相同,导致数据库的维护工作也难如登天。
这时我们开始重新思考应该提供什么样的数据库服务,得出了以下几点:o统一分库分表标准o路由针对业务透明o数据库服务伸缩无感知o统一数据服务o业务研发自助申请服务o数据库运维工作自动化为了实现上述功能特点,我们分为两步走:第一步是优先解决业务和运维窘境,从而争取足够的时间和技术buffer进一步完善产品,第二步是最终完美形态的产品研发。
因此,我们首先在2015年开发了JProxy,优先解决紧急的业务和运维难题:分库分表规则统一化和路由透明化。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
app
数据库拆分:
机房A
机房B
订单中心 用户中心 商品中心 配送中心
跨机房:光纤线
跨机房异地复制
数据库:复制 、Always ON 、
DG ….
app
app 高频数据读写:异步、缓存缓冲数据库压力
消息、 缓 存集群 JProxy 机房A
大字段移出数据库
机房B
分布式搜索引擎
业务:网站 + 订单
数据:几十~几百笔订单
DBA :研发人员兼职 数据库类型:MSSQL
历史数据
业务:
网站 订单 商品 用户 配送
、列表 、财务、支付 、评论、 价格 、仓储
数据:数万笔订单 DBA人员: 3 ~ 5人,监控系统 数据库类型:MSSQL + MySQL + Oracle
需求:读请求增多
业务线增多
问题:写库压力大 读库延迟
RW
一级复制
二级复制 RO
千万级表 单表百G 10余张表
高
故障连锁
如何快速修改主键 类型?
业务:
数百个业务条线 数据报表
数据库类型: MSSQL MySQL Oracle NoSQL
跨IDC灾备
数据:海量 DBA人员: 团队
app
云安全
云硬盘 多块创建 数据转移 备份恢复
防火墙 自定义安全规则 监控报警 自定义报警规则 通知列表 DDoS基础防护 自动防护 阈值设置 黑洞时长
大数据
产 品 服 务 层
云主机 自定义镜像 挂载云硬盘 公网IP绑定 监控报警 镜像 共享镜像 私有镜像 容器 京东内研
流计算 支持SQL BI报表 大数据分析 京东万象 数据商城
….
跨机房异地复制
弹性计算服务
网络
子网 自定CIDR 连接路由器 公网IP 绑定/解绑资源 DDoS防护 负载均衡 可选转发规则 后端云主机管 理 健康检查 Web应用防护
存储与CDN
云数据库 云缓存 多种配置 主从切换 备份创建 内网访问
云存储 CDN 高速分发 域名加速 在线处理 缓存配置 权限控制 资源监控 防盗链
app
app
Open API
app
DB Manager
Init DB
Create instance JStack
Jss Storage
主机资源
DB引擎
规则制定
短信、电话
• 遍布全球的顶级数据中心 • 7*24小时售后支持 • 一对一VIP服务 • 迁移服务 • …
关系型
Key-Value型 分布式
云主机
云存储 其他云服务 公有云 京东云
专属物理服务器 托管IT资产
运维
托管云
用户IDC实ຫໍສະໝຸດ 备份,永不丢失监控系统快速部署上线
功能
自动高可用
实时灾备数据
灵活扩容缩容
使用简便
安全、稳定、可靠
解放DBA
提升效率
快速部署,便捷运维 —— 即时创建资源,数分钟便可完成包括高可用、监控、告警在内的整个数据库环境的部署,可以立刻投入生产 运行,立即创造价值。 —— 通过web界面可完成大部分日常运维操作,实时监控系统运行状况,并有专业团队在后台7*24小时守护,随时 解决您的各种疑问。 性能优异,稳定可靠 —— 全SSD 本地磁盘,提供强大的IOPS能力,解决数据库IO瓶颈。 —— 运行环境及参数经过精心优化,提供大多数场景下的最优设置。 —— 通过SQL Server镜像提供一主一备的高可用环境,主机数据实时同步到备机,发生故障自动秒级切换,确保业 务影响最小。 弹性扩容,一键升级 —— 可根据实际需要合理配置CPU ,内存,硬盘资源,避免浪费;可随时按需扩充资源,满足业务快速发展的需要。 —— 升级资源快速简便,可在控制台中一键完成,升级过程几乎不影响业务的正常访问和使用。 安全防护,抵御攻击 —— 宿主机位于多重防火墙的保护之下,并安装各种系统补丁,修补安全漏洞; 只开放必需的端口,能够抵御各 种恶意攻击,保障数据库安全。 —— SQL Server实例运行在逻辑隔离的私有网络(VPC)中,并通过VPN 或专线连接,避免了数据库直接暴露在公 网上,防范各种攻击。 —— 具有VPC 、ACL、安全组、DDoS 防护等多种安全机制,可抵御绝大部分网络攻击
路由器 绑定防火墙
服务器虚拟化 计算资源
存储虚拟化 存储资源
网络虚拟化 网络资源
服务类型
人工智能 电商 政府 数知 零售 游戏
行业应用
金融 教育 物流 移动APP 医疗 工业制造
生态系统
合作伙伴
PAAS服务
域名 数据库 中间件 开发平台 测试平台 发布平台
开源社区
IAAS服务
安全
厂商联盟 专线 服务 VPN 器主 机 服务 器主 机 开发者社区 云市场
一键上云
多模式选择
数据分析
更多功能...