前言:
京东弹性数据库不是一个单一的产品,而是京东在对数据库的使用、it运维和开发过程中遇到的一系列问题的网上捕鱼的解决方案,和it运维经验的总结升华进而形成的一套产品系列。
讲师介绍:
吕信,京东商城数据库技术部资深架构师,拥有多年数据产品研发及架构经验。在京东及国内主导多种数据产品开发及社区建设,积极活跃于数据产品领域,对数据库及大数据领域各个产品具有丰富经验,目前在京东商城主导弹性数据库研发及推广使用。
京东弹性数据库是一个产品系列,主要是解决数据库的it运维、使用和研发过程中的问题,具备动态伸缩、高可用、查询透明路由、集群化日志服务和自动化it运维等功能。下面将就京东弹性数据库三个核心模块的功能进行详细说明。
1.核心功能模块:jed,提供数据查询和写入的自动路由、自动弹性伸缩、自动failover、自动负载调度和数据库服务智能自治的功能。
(1)在线动态扩容
起初某个业务可能申请了4个分库,后面随着业务的发展,数据量越来越大,可能需要扩容到 8个分库,一般的数据库中间件在扩容时,需要与业务研发部门协商一个业务低谷期停业务,然后进行扩容,扩容完毕后重新启动业务。为了解决这个问题,jed提供了在线动态扩容功能,扩容只会对业务造成秒级影响,且无需人工介入。我们现在可以触发自动扩容,设置的策略是当磁盘的使用率达到80%,就自动进行扩容。
(2)自动failover
master一旦出现宕机,哨兵检测系统就会第一时间检测到,会自动触发注册在哨兵检测系统中的hook程序,hook程序就会选择一个最新的slave替换master,然后更新etcd中的元数据信息,业务方的下一次请求就会发送新的master上。
(3)兼容mysql协议
jed是完全兼容mysql协议的,即通过mysql的client端或者标准的jdbc driver都可以连接到jed的gate层,然后进行查询和计算。
(4)多源数据迁移
我们基于ghost进行改造,开发了京东的it运维数据传输和接入工具: jtransfer,实现了it运维业务数据的动态迁移。如果以前你的业务是运行在mysql上的,现在要迁到jed上,你不需要停止任何业务,直接启动jtransfer的数据迁移服务,就可以在后台自动完成数据的同步和迁移。迁移完毕后,jtransfer会自行比对jed上的数据与原来数据的一致性和lag计算,当数据完全一致,且lag小于5秒时,就会邮件通知业务方进行复验,复验没有问题,业务方直接将数据库连接指向到jed就可以正常提供服务了。
(5)数据库审计
jed具有数据库审计的功能,该功能实现在gate层,在gate层我们会得到应用发送给jed的所有sql,然后将sql语句或者sql模板发送给mq。由于是在gate层实现的,而gate层与mysql服务不在一个容器上,因此对mysql服务不会产生任何的负面影响。
2.实时数据发布与订阅模块: binlake,完全自助、无状态、自动负载、完全自治、可横向扩展的集群化binlog采集和订阅服务。
binlake只做一样工作:集群化binlog的采集和订阅服务。binlake之前,我们使用canal进行binlog采集,但我们发现存在资源浪费等问题:若一个业务需要采集mysql binlog,并且还需要ha保证的话,我们至少需要两台服务器。那多个业务怎么办?于是我们开发了binlake,其功能特性如下:
(1)无状态集群化binlog采集
binlake是一个集群化的binlog采集和订阅服务,并且与常规意义上的集群不一样,我们的集群是没有master节点的,而且集群中的所有工作节点都是完全平等的,这也就意味着,只要集群中的节点没有全部宕机,binlake集群可以一直提供服务。
(2)高可用与自动故障转移
针对于某个mya实例的采集instance(每个instance代表一个线程)一旦挂掉,会在集群中的负载最低的工作节点上重新启动一个instance,继续从上次挂掉的offset进行采集,不会造成binlog的丢失和重复。
(3)负载自动均衡
假设所有binlog的集群有八个节点,其中有七个节点的负载比较高,当你在接入binlog时,在没有人工介入的衡量下,整个集群会将以新接入的一个instance采集实例,自动选择一个健康度最高的wave服务,然后启动binlog采集。
(4)支持多种mq
binlake采集到的所有binlog的event会被封装成message发送给mq,目前我们支持jmq和kafka两种mq产品。
(5)支持集群横向扩容
当binlake集群的服务能力达到了瓶颈,我们可以简单地将新的工作节点启动,只需要在新的工作节点配置文件中配置上与线上的工作节点相同的zookeeper路径,新的工作节点就会自动加入到已存在的binlake集群中。
3.自动化it运维模块:dbs。
dbs主要完成自动化it运维的工作。它可以完成数据库服务的自动化交付、数据库操作的流程化管理、数据库健康指数全面监控、数据库自动备份及结转,以及调度作业的多样化调度(包括定时、依赖以及触发三种调度模式)。
以上就是对it运维全面docker化之后,京东弹性数据库的突破分析,今天分享就到这里,谢谢大家!
制作500个工牌?不用三天,专业it运维工程师教你一个功能,3秒搞定
2021年你还在为加班烦恼吗?今天gemini给大家带来了免加班技巧分享,让你从...
专业it运维工程师教你告别丑,ppt美化表格,好用到爆
一表胜千言,数据表达在ppt内有很大的用途,它不仅能够让晦涩难懂的纯文字表达得清...
年终总结时间到,专业it运维服务商教你做领导喜欢的动态报表
年关将至,有的人狂冲业绩,坐等年终奖,有的人可能正被年终总结折磨……年终工作总结...
花5分钟,了解一下专业it运维服务商整理的excel省时技巧吧!
excel的存在是为了更高效工作,但庞大的数据处理却成了每晚加班的”凶手“?所以...
想要一个与众不同的windows菜单栏吗?专业it运维服务商教你私人订制
win 10默认的菜单栏你看够了吗?想不想要做一个与众不同的win 10菜单栏?...
汇报季|数据太多太杂乱?试试这种动态图表展示效果
又要到年终汇报的时刻了相信不少小伙伴在进行工作汇报的时候总免不了制作各种图表但是...
专业it运维工程师分享:快速在excel里打√×
自带神器属性的excel,看似简单,其实花样很多。就拿在excel中敲“√”、“...
专业it运维服务商教你如何在word内筛选数据
excel的筛选功能很多人都会但是word的筛选你知道怎么操作吗?word不能直...
it运维服务商分享:excel的数字显示异常的问题的解决方法
大家都知道excel多用来做数据统计,说到数据,不知道你有没有遇到过,使用exc...
word的查找和替换你会用吗?专业it运维工程师教你高效处理工作
很多刚入职场的人,正常来说工作并不是很多,但是会经常觉得自己很忙,你知道自己为什...
分享到
未经本公司书面许可,任何单位及个人不得以任何方式或理由对上述产品、服务、信息、材料的任何部分进行使用、复制、修改、抄录、传播或与其它产品捆绑使用、销售。
凡侵犯本公司捕鱼平台app的版权等知识产权的,本公司必依法追究其法律责任。
本公司法律事务部受本公司指示,特此郑重法律声明!