it运维全面docker化之后,看京东弹性数据库的最新实践与突破!-捕鱼平台app

双子信息

information

it运维全面docker化之后,看京东弹性数据库的最新实践与突破!

2018-01-10

前言:

京东弹性数据库不是一个单一的产品,而是京东在对数据库的使用、it运维和开发过程中遇到的一系列问题的网上捕鱼的解决方案,和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化之后,京东弹性数据库的突破分析,今天分享就到这里,谢谢大家!

最新新闻the latest news

分享到

china's leading it service brands

中国领先it服务品牌企业

销售热线:400-017-5181
故障处理:400-617-5181
同创双子(北京)信息技术股份有限公司(英文简称“gemini”)是一家it服务公司。2016年新三板正式挂牌上市(股票代码:837868)。 联系网上捕鱼

微信客服

it外包就扫我

电玩城捕鱼 copyright© 同创双子(北京)信息技术股份有限公司 , 京icp备16037308

网站地图

法律声明

未经本公司书面许可,任何单位及个人不得以任何方式或理由对上述产品、服务、信息、材料的任何部分进行使用、复制、修改、抄录、传播或与其它产品捆绑使用、销售。
凡侵犯本公司捕鱼平台app的版权等知识产权的,本公司必依法追究其法律责任。
本公司法律事务部受本公司指示,特此郑重法律声明!