写点什么

看京东如何玩转云数据库

  • 2015-11-25
  • 本文字数:2911 字

    阅读完需:约 10 分钟

作为支撑百亿级数据量业务的基础服务,京东云数据库在可用性及高性能方面有极高的要求。本期我们的采访嘉宾是京东资深架构师张成远,本文根据采访整理而成。

受访嘉宾

张成远,京东资深架构师,《Mariadb 原理与实现》作者,开源项目 speedy 作者。2012 年加入京东云数据库技术团队,擅长高性能服务器开发、分布式数据库、分布式存储 / 缓存等大规模分布式系统架构,主导了京东分布式数据库系统及容器系统的架构与开发工作。在 ArchSummit 北京 2015 全球架构师峰会上,张成远将作为专题讲师为大家带来《京东云数据库支撑百亿级数据量业务的探索与实践》

云数据库服务是一项基础性的云服务,解决用户自己搭建数据库时需要考虑的各种问题,让用户在使用时可以按需申请数据库资源,保证整个数据库服务的稳定性及数据的可靠性,同时提供弹性伸缩等的支持,尽可能的降低用户在使用云数据库时的成本。

本主题主要是分享京东私有云分布式数据库集群的实现,包括如何支撑上亿级数据量的业务,如何保证数据高可靠、服务高可用以及在线集群扩容等机制。另外还会分享京东公有云数据库的架构与设计,如何实现一个稳定、可靠、可弹性伸缩的公有云数据库服务,涉及到备份、恢复、监控、迁移、高可用切换等一整套方案。

京东内部有大量业务的数据是存放在 Oracle 中的,为了完成京东内部去 O 的过程,我们为此打造了一套私有云分布式数据库集群,这套私有云分布式数据库集群目前支撑着京东大量拥有上百亿级数据量的业务,本主题中会重点介绍去 O 过程中遇到的难点同时详细介绍在内部数据库云化以及在支撑大规模业务过程中积累的经验,包括如何打造一套高性能的私有云分布式数据库集群服务,如何在支撑京东上百亿级别数据量业务正常服务的情况下做到在线无缝集群扩容,分享来自京东生产一线的经验。

云服务最重要的是要做到可弹性伸缩可按需获取资源,让用户可以尽可能的花最少的代价满足业务的需求。用户使用云数据库时面临当业务量增长时申请的资源不够,需要做到快速的扩张现有资源,当业务量降低时需要快速缩小现有资源。当数据库实例甚至整个机房发生故障时,要做到用户在云数据库中的数据是安全的可靠的,可以第一时间恢复云数据库服务,包括跨机房恢复等,保证云上的用户业务是不受影响的,这些都是云服务尤其是云数据库服务需要解决的事情,本主题也会介绍京东公有云数据库是怎么解决这些问题的以及在解决这些问题时积累的经验。

精彩内容敬请期待,以下是 InfoQ 记者对京东资深架构师张成远的专访:

InfoQ:请成远简单介绍一些京东云数据库服务。

张成远:京东云数据库主要包括公有云数据库服务和私有云数据库服务两部分。公有云数据库主要是面向外部用户,定位是中小型公司;私有云数据库主要针对公司内部业务,有时候甚至会特殊业务特殊对待,会针对业务的特点来具体问题具体分析,数据量较大的业务我们会建议业务使用我们私有云分布式数据库集群,将数据进行拆分等。这两项服务在京东都是由同一个团队来提供支持,京东云数据库的总体做法是将私有云数据库中积累的经验逐步的输出到公有云数据库上。

InfoQ:云数据库集群服务和 N 个数据库同时提供服务有何区别?

张成远:云数据库集群服务主要是指分布式数据库集群,用户在使用这个集群的时候可以像使用单台数据库一样去使用,在业务层面不用关心集群中的数据是如何分布的,对用户来说后端的数据库实例是不可见的或者不需要关心的,在使用层面来说心智负担会大大降低。

N 个数据库同时提供服务一般是指 N 个数据库服务多个不同的业务,或者是某个业务同时使用了 N 个数据库,但是业务对这些数据库是有感知的,换句话说这 N 个数据库对业务都是可见的。

InfoQ:云数据库技术相对于普通的数据库技术的挑战在哪?

张成远:云数据库服务其实也可以理解为将传统的数据库服务搬到云上,但是云数据库服务尤其是公有云数据库和传统的数据库确实是有区别的,最大的挑战在于不仅仅要提供数据库服务,还需要与用户的私有网络及云主机甚至包括云存储等各项云服务相互配合提供高可用的服务、保证数据的高可靠,是一整套云服务中的一项。传统的数据库技术更多关注的是数据库本身的,网络及主机等问题一般会比较简单。

InfoQ:京东云数据库的架构是怎么样的?这样的架构有何优势?

张成远:京东公有云数据库的架构都是基于私有云数据库的实践经验所得,在实际输出的时候考虑到安全及弹性伸缩等的考虑,公有云上采用基于虚机部署的方式,结合云主机云存储以及云数据库系统自身相配套的信息采集系统再整合公司的监控系统等各项服务,对外提供可伸缩高可用及高可靠的公有云数据库服务。

私有云中的分布式数据库集群架构主要是采用引入中间件的方式来支撑业务,中间件本身完全兼容 mysql 协议,在内部业务使用的时候可以像使用原生数据库一样简单。

InfoQ:这套服务是如何做性能监控的?如何找到服务中的慢查询等问题?

张成远:公司内部有一套完整的统一的监控系统,云数据库自身还有一套信息采集系统,采集系统会采集数据库实例上的相关信息包括慢查询以及机器负载等信息,这些采集的信息经分析处理以后如果如果发现有异常比如有慢查询或者机器负载较高,会通过统一的监控系统触发报警,做到及时发现问题及时处理问题。

在私有云分布式数据库集群中的性能监控主要是两部分构成,一部分是分布式数据库中间件会对查询做一些统计信息,这些统计信息中有超过某些阈值的情况就会触发报警,另外一部分是数据库本身的完善的监控系统。

InfoQ:在弹性伸缩部署方面,京东有哪些独创的技术?

张成远:京东公有云数据库目前是部署在虚拟机里的,基于虚拟机的快速创建我们可以做到公有云数据库实例的较快的创建。私有云数据库目前有很大一部分已经将数据库实例放到容器里,在创建部署方面将更加的便捷,当内部验证以后后续我们也会考虑输出到公有云上。

InfoQ:在双十一等活动中,百亿级数据量业务给了云数据库服务什么样的压力?技术上是如何保证整个架构能够扛得住这么大压力的?

张成远:私有云数据库在重大活动中确实有很大的压力,这些方面没有捷径,我们能做的是在活动之前做好预案,包括提前演练压测等以及各种异常情况的应对方案。

将数据库放到容器里解决了我们较大的一个问题,可以快速的创建需要的数据库实例资源,另外我们也针对内部业务的特点开发了一套私有云分布式数据库中间件系统,让压力分散到多个实例上,降低每个数据库实例的压力。

InfoQ:在技术演进过程中,有没有哪些你印象特别深刻的故事跟我们分享一下?

张成远:京东的业务发展非常的迅猛,所以在很大程度上来说京东的技术都在被业务驱动着往前跑,很多业务早期数据可能是放在 Oracle 或者 Sqlserver 中的,等到业务量比较庞大的时候再着手将数据从原来的数据库迁移到 mysql 里的时候就会比较痛苦,一般都需要业务方和数据库团队紧密配合才能真正的完整的迁移出来,但是也正是因为有这些实际的业务需求驱使着京东的技术不断的提升。


给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群InfoQ 好读者(已满),InfoQ 读者交流群(#2)InfoQ 好读者)。

2015-11-25 18:003028

评论

发布
暂无评论
发现更多内容

Apache ShardingSphere 5.1.2 发布|全新驱动 API + 云原生部署,打造高性能数据网关

SphereEx

云原生 ShardingSphere 版本更新

云堡垒机分布式集群部署优缺点简单说明-行云管家

行云管家

云计算 网络安全 堡垒机 云堡垒机

不容错过的2大直播!Linux应用运行抖动的背后&身临其境体验Anolis OS|第25-26期

OpenAnolis小助手

Linux 开源 操作系统 直播 龙蜥大讲堂

进击的程序员,如何提升研发效能?|直播预告

万事ONES

大数据培训flink之电商用户行为项目整体介绍

@零度

flink 大数据开发

5000字解析:实战化场景下的容器安全攻防之道

青藤云安全

网络安全 容器安全 攻防演练

3M互助智能合约系统开发搭建技术

薇電13242772558

智能合约

智能制造的下一站:云原生+边缘计算双轮驱动

York

云原生 边缘计算 工业互联网 云边端协同

撰写有效帮助文档的7大秘诀

小炮

这不会又是一个Go的BUG吧?

捉虫大师

Java Go 死锁

浅谈德州扑克AI核心算法:CFR

行者AI

人工智能 AI 强化学习

Linux下玩转nginx系列(六)---nginx实现cache(缓存)服务

anyRTC开发者

nginx Linux 缓存 音视频 服务器

更新视图——基于函数的视图 Django

海拥(haiyong.site)

Python django 6月月更

中国游戏的“外卷”大时代,中小厂商如何破解出海难题?

极客天地

Vue-16-表单绑定

Python研究所

6月月更

招募令|数据可视化开发平台“FlyFish”「超级体验官」招募啦!

云智慧AIOps社区

前端 前端开发 低代码 数据可视化 可视化开发

2022年中国手机银行年度专题分析

易观分析

手机银行

GraalVM 与 Spring Native 项目实现链路可观测

观测云

高效远程办公手册| 社区征文

程序员-小江

初夏征文

融云 x DiDO:中东热土上的语音社交「萌狮」

融云 RongCloud

容器云是什么意思?与堡垒机有什么区别?

行云管家

云计算 运维 容器云 堡垒机 IT运维

既不是研发顶尖高手,也不是销售大牛,为何偏偏获得 2 万 RMB 的首个涛思文化奖?

TDengine

数据库 tdengine 时序数据库

《网络是怎么样连接的》读书笔记 - FTTH

懒时小窝

网络编程

集成底座方案演示说明

agileai

集成底座 企业服务总线 统一身份管理平台 主数据管理平台 方案演示

AutoK3s v0.5.0 发布 延续简约和友好

Rancher

Kubernetes k8s rancher

云原生监控系统·夜莺近期新功能一览,解决多个生产痛点

巴辉特

云原生 Prometheus Nightingale 运维监控

linux 密钥登录

CRMEB

《网络是怎么样连接的》读书笔记 - ADSL

懒时小窝

网络编程

百度交易中台之钱包系统架构浅析

百度Geek说

系统架构 百度app

MAUI与Blazor共享一套UI,媲美Flutter,实现Windows、macOS、Android、iOS、Web通用UI

沙漠尽头的狼

C# MAUI Blazor Blazor Server Blazor WebAssembly 跨平台UI

为什么要做茶叶商城小程序app开发?

开源直播系统源码

软件开发 一对一源码 小程序商城

看京东如何玩转云数据库_服务革新_龙永昕_InfoQ精选文章