说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

奇虎360Web平台部基础架构团队访谈:开源线上数据库中间件Atlas

HTML文档下载 WORD文档下载 PDF文档下载
日前,CSDN记者联系到奇虎360Web平台部基础架构团队,就Atlas、MySQL集群架构以及开源等一系列问题作了采访。

近日,奇虎360Web平台部基础架构团队发布了最新开源项目——Atlas(代码托管地址),一个基于MySQL协议的数据中间层项目。它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基础上,修改了大量bug,添加了很多功能特性。目前该项目在360公司内部得到了广泛应用,很多MySQL业务已经接入了Atlas平台,每天承载的读写请求数达几十亿条。日前,CSDN记者联系到奇虎360Web平台部基础架构团队的王超,就Atlas、MySQL集群架构以及开源等一系列问题作了采访,以下是采访内容:

CSDN:请您介绍一下自己及奇虎360线上数据库中间件开发团队。

奇虎360王超:大家好,我是王超。我于2011年加入奇虎360,当前在Web平台部负责基础架构团队,我们团队的主要职责是给Web后端业务提供高可靠、高性能的基础服务支持。

我们团队开发、维护着许多系统,除了分布式数据库、消息队列这些居家必备的基础服务之外,我们还做了一些好玩的东西。这次开源的MySQL中间件Atlas就是其中一项,它能真正让业务实现访问MySQL集群的高可靠和高可用,并且将业务开发工程师和MySQL运维工程师的工作完全隔离,做到互相透明,互不影响。当前主要由两位工程师在做持续开发和维护。

CSDN:360为什么要单独设计这样一款线上数据库中间件?它具有哪些功能点?

奇虎360王超:MySQL集群化应用一直都很普遍,为了提高应用系统的性能,开发工程师往往使出浑身解数在应用代码层做读写分离、负载均衡、分库分表,需要对后端MySQL集群架构有清晰的掌握,一旦某台MySQL Server宕机,不仅运维工程师需要感知,开发工程师也需要及时作出响应。为了提高业务团队的开发效率、减少人力成本,并且让运维工程师更灵活的施展手脚,这样一款中间件的重要性是我们可以预见的。

除了上述提到的特点,Atlas还支持黑白名单,它可以让我们自定义危险语句,比如delete忘了加where这样的SQL,从而提高安全性。

同时,它能让MySQL集群应用更加可靠和便捷,大家在实际使用中自然能感受到。

CSDN:为何选择把奇虎360线上数据库中间件开源?

奇虎360王超:第一、Atlas的广泛应用,为我们的业务开发效率、运维灵活性、集群可靠性带来了质的改变,所以我们希望它的开源同时能帮助到大家 

第二、取之开源,回馈开源,这是应该的。希望大家一起参与进来。

CSDN:与同类数据库中间件相比,它具有哪些特性?解决了哪些技术难点?

奇虎360王超:当前能够供大家用的数据库中间件很少,更不用说开源的了。相比同类开源软件,Atlas有以下特点:

a. 轻量级,只有三万多行C代码

b. 配置、管理简单

c. 使用原生MySQL协议,客户端无需作出额外的代码变动

5.该数据库中间件使用了哪些开源技术?其架构是怎样的?

基于开源软件MySQL-Proxy进行开发,其使用了MySQL原生协议,也就是说使用Atlas无需对原有的应用代码逻辑进行变更。

架构同样延用了Proxy方式,运行在Client与Server之间,负责请求的调度。

CSDN:在设计过程中遇到了哪些难点?是如何解决的?

奇虎360王超:设计和开发过程是痛并快乐的,因为MySQL-Proxy一直是Alpha版本,我们在最初调研、选型阶段就意识到基于此版本开发,过程会非常曲折,事实证明确实如此,不支持多字符集、多线程崩溃、epoll惊群、Lua全局锁、伪连接池等,这仅仅是功能性问题,性能方面也不给力,比如几百的QPS、并发高时latency会恶化到十秒级。

基于开源软件做,优势是一些功能不用重头开发,比如MySQL协议解析模块,但也有局限,由于内部架构已经成型,有些功能想优化成本也很高。期间也跟MySQL官方提交过一些BUG,但基本都石沉大海,即使有回复确认也没有相应patch。当时国内有一家大型互联网公司也有类似的项目,一开始同样基于MySQL-Proxy去做,但中间因为一些原因换用Erlang重写了。

我们当时有点犹豫,也想放弃重头写,但后来还是坚持了。现在想想还是值得的,因为从MySQL-Proxy中我们也学到了很多。

对于问题的解决,除了要清晰掌握代码、软件内部结构之外,还要善用工具,及时变换思路

CSDN:该数据库中间件是什么时候开始投入使用的,现已应用到公司内部哪些产品中? 

奇虎360王超:Atlas项目是11年启动的,两个月后完成了第一版,并小范围上线。之后完成了三个比较大的改版,在12年年底前覆盖了公司大多数MySQL应用。

CSDN:对该款数据库中间件,未来有什么规划吗?

奇虎360王超:我们发布的版本在内部已经是稳定版本,开源出来之后,由于大家运行环境各不相同,可能会产生编译或其他一些问题。我们收到反馈后,会及时解决。

另外,我们考虑是否给Atlas加入跨服务器的auto sharding功能,由于当前不乏一些分布式架构成熟的数据库,是否有必要做最终取决于需求。

CSDN:360公司内部对开源是怎样的态度?未来有什么计划?

奇虎360王超:拥抱开源!开源有助于我们提高代码质量,同时让我们受益,我们有责任、有义务回馈开源社区。未来将会有更多的项目加入进来。

CSDN:多谢王超和奇虎360Web平台部基础架构团队!希望未来有更多的好的产品实现开源!(付江、陈秋歌/文)

让沟通更便捷 ConnectYard宣布推出全新的Web API 在Hadoop上运行SQL:程序员需知晓的13种数据工具 怎样用好Eucalyptus? AWS攻势变猛,Rackspace主动降价CDN与云存储 惠普将于下季度推出低功耗的Moonshot服务器 webOS复活!LG收购webOS用于智能电视 那些因为HTML5而将消亡的产品 初窥iWatch用户界面:开创基于时间的全新体验 如何编写出拥抱变化的代码? 20个优秀的前端框架 以AWS和vCloud为标杆看四大开源平台的定位 桌面集成开发环境五年内必将“死亡”? 助影人圆梦奥斯卡 8mm相机应用其实很平庸 苹果应用审查团队叫停Cookie追踪技术 时势造英雄:中国早期O2O创业故事 iOS开发与Android开发的四大不同 “消极抵抗”AWS OpsWork?RightScale首次宣布转售并支持GCE 2012年VC都把钱投给了哪些大数据初创公司? 耐用性将成苹果iWatch最大挑战 Sphinx:首款全硬件加速HTML5游戏引擎发布 PayPal创始人Levchin又创办了一家移动支付公司Affirm Zuck、Bill Gates、Jack Dorsey上银幕激励孩子编程 十款最新开源的开发者工具/应用(组图) Django 1.5发布,Python 3开始进入主流? [爆料]英特尔:将Hadoop“固化”到Xeon中 姗姗来迟:微软终于发布Windows 7 IE10正式版 谷歌推Google+登录系统 与Facebook争夺用户信息 微软在CodePlex上开源C++ REST SDK 代号Casablanca 论OpenAPI的起源与历史 LinkedIn开源低延时变化数据捕获系统Databus 微软发布全新WP应用 随时查看App崩溃信息 在vb中如何进行时间比较?例如1 / 7 / 17 10:00:00 - 1 / 7 / 17 00:00:00 得到一个值?? 请问如何获得其他机器的网卡MAC地址?非常感谢!!! 别了,最爱的BCB! 如何判断一个指向窗口的指针可用? 请教高手:怎么样破windows2000的登陆密码?其密文存放在什么地方? 急:哪里有电子文档 找到找到 网络编程、大虾有请!如何获得当前每秒的字节数? 各位高手,有人喜欢用mysql吗?谈谈这个东东吧 大富翁怎么连不上了? 各位武汉的大虾,请教武汉程序员、高级程序员、系统管理员(正规的大公司)、以及用JAVA做开发的工资一般为多少。希望大家给予帮助!!前途问题!! 网络编程大虾有请!如何获得当前每秒的字节数? 怎样在treeview中设置背景图片 to 版主:精华区太乱了,请给予分类。谢了 听说VB可以写PAD的程序,TRUE? JLabel中文本换行问题 马上要开始学BCB,请问BCB有那种类似于VC的创建类的向导吗,看到BCB的界面我就想到DELPHI中创建类的难度 我的游戏引擎BATTLEFIELD作好了,欢迎下载(这次是真的) 一个pop_up menu的问题 那位高手知道在SDK中使用ADO的方法 为普天之下正直而上进的程序员找一个温馨的家 为什么不能把JMF包打进去??? 内存泄露是指例如“为对象分配一个内存区后,未删除内存区,但删除了对象”是吗? 装pws时遇到的麻烦! to freezwy(网络自由人) 有没有限制上传图片大小的asp代码??(不是组件) 还是没有解决!!! 有关VC中数据库绑定的问题! 扔个骨头……下个“圈套”,呵呵? ^_^ 紧急情况!如何改变DataGrid控件中个别行的颜色?? 如果实现断开共享目录的连接 acces 表 SQL语句中如何转换字符型字段为整型? First-chance exception 请教directx的一个入门问题? 诚征MM中…… 多线程问题?? 请问sybase中real类型的最大值是多少?999999999 自杀的N个理由 如何根据日期计算出一年中的第几天? 情况不对,撤丫~~~~~~~~~ 如何在JBuilder4.0编译环境下打包\编译??????? 关于对话框的一个简单问题 如何把几个chm(已编译的 html 文件)文件合成一个chm文件 ado参数问题 请问sevrlet怎么结合HTML模板工作呢?谢谢 我想作一些动态界面,有谁能提供一些有关这方面的资料.小弟有礼了 比较弱的问题 各位大哥:请问哪儿有通过ADO操纵数据库的完整程序下载呀。最好是比较精典一点。谢 写一个php中的include文件,后缀名应该是什么。马上给分 怎么将PHOTOSHOP中分割的图片的结构植入DW4中? send 和 post的区别是什么?谢谢 哪里有《UNIX环境高级编程》这本书下载? 一项工程,甲独做需10天,乙独做需15天,如果两人合作,甲的工作效率就要降低,只能完成原来的4/5,乙只能完成原来的9/10,现在要8天完成这项工程,两人合作天数尽可能少,那么两人要合作多少天?要 某项工程队,甲单独做需a天完成,在甲做c天(c 一件工作,甲、乙两人合作30天可以完成,共同做了6天后,甲离开了,由乙继续做了40天才完成.如果这件工作由甲或乙单独完成个需要多少天? 一项工程,甲队单独完成要10天,乙队单独完成需要15天,甲队和乙队的工作效率比是多少 一项工程,甲单独完成需要a 天,甲,乙合作需要b 天完成,求乙每天完成多少? 一件工作,甲乙两人合作30天可以完成,共同做了6天后,甲离开,乙继续做了40天完成.如果这件工作由甲或乙单独完成各需多少天?乙单独做需要:1÷(1-1/30×6)×40=50天甲单独做需要:1÷(1/30-1/50) 一项工程甲单独做要10天,乙单独做要15天,如果两人合作,甲的工作效率要降低20%,乙的工作效率要降低10%,现在要8天完成这项任务,两人合作的天数尽可能少,那么两人要合作多少天? 一项工程,甲单独完成需要a天,甲,乙合作需要b天,求乙每天完成多少? 一件工作,甲乙两人合作30天可以完成 ,甲乙两人共同做了6天后,甲离开了 乙继续做了40天完成,一件工作,甲乙两人合作30天可以完成 ,甲乙两人共同做了6天后,甲离开了 乙继续做了40天完成,如 一项工程,甲独做10天完成,乙独做15天完成,现在甲做4天,乙做3天,分别完成这项工程的几分之几? 一项工程,甲单独做需10天,乙独做需15天,如果两人合作,甲的工作效率就要降低,只能完成原来的4/5,乙只能完成原来的9/10,现在要8天完成这项工程,两人合作的天数尽可能少,那么两人合作要多少 一项工程,甲队独坐a天完成,乙队独坐b天完成.两队合作,求完成的天数 做一项工作,甲用5天完成,乙用4天完成,甲每天可完成这项工作的几分只几?乙每天可完成这项工作的几分只 一项工程由甲乙丙三个工程队单独做,甲队要6天,乙队要7天,丙队要14天,合作一天后还剩几分之几?是1-(6\1+7\1+14\1)嘛~ 一项工程,甲队独做A天完成,乙队独做B天完成.两队合作( ),天数完成 单独完成一项工程,甲要5天,乙要8天,甲的工作效率是乙的几分之几? 甲乙两个工程队合做一件工程,7天能完成,两队先合做5天后甲乙两个工程合作一件事情,7天能完成,两队先合作5天后,甲工程队的全部人员和乙工程队人员的1 /5,调到 0 | 解决时间:2010-8-30 18:31 | 一项工程,甲单独做需A天完成,乙单独做需B天完成,两人合作比甲单独做提前完成的天数为( )A.ab/a+b B.b的平方/a+b C.a的平方/a+b D.a-b/a+b 做一项工程,甲用5天可以完成,乙用4天可以完成,甲每天可以完成这项工作的几分之几?乙每天可以完成这项工作的几分之几?乙的效率比甲高百分之几? 一项工程,甲乙两人合做18天完成,甲单独做要30天,现甲乙两人先做六天,再由甲做10天,这件工程还剩几分之几 一工程 甲单独做3天完成,乙单独4天完成,甲队工作效率比乙队大约快( ) A,25% B 、25.1% C,30% D,3.3% 一件工作 ,甲单独做15天完成,乙单独做12完成.两个合做4天可以完成这项工作的几分之几? 一件工程,甲乙合做18天完成,甲单独要30天完成,现在两人合做6天后,再由甲单独做10天,工程还剩几分之几? 某工程甲乙两人合作8天完成,需要费用3520元,若甲单独做6天后,剩下的工程由已来做,已还需12天完成,这这样共需要费用3480元.(1)甲乙两人单独完成此项任务需要多少天?(2)甲乙两人单独完 甲 乙两人合干一项工作,原计划12小时完成,现在甲先干了5小时,甲,乙又合干了10小时才完成.求乙的工作效率是假的几分之几 一件工程甲乙合作8天完成甲单独做30天完成现在甲乙合作4天后再由甲独做10天一共完成这项工程的几分之几?解答并且讲题 一项工程,甲乙两人合作4天后,再由甲独做6天才完成.已知甲比乙每天多完成1/80,则甲乙单独完成各需多少 一件工作 甲单独做需要10小时完工,乙单独干需15小时完工,现甲乙合干几小时完工? 一项工程甲独做6天完成,乙独做8天完成,那么甲乙合作一天完成这项工程的几分之几?甲做a天,乙做b天,共完成了这项工程的几分之几? 一项工程,甲,乙两人合作10天可以完成,或甲独做20天可以完成.现甲,乙两人共同做6天后离开,甲离开,由乙单独完成这项工程,乙还需要多少天? 一项工程,甲乙合干10小时完成,家单独干18小时完成,乙单独干1小时能完成这项工程的几分之几? 一项工程,甲、乙合作6天完成.甲单独做11天完成,乙单独做每天完成这项工程的几分之几? 一项工程,甲、乙两人合作4天后,再由甲单独做6天才完成全部任务,已知甲比乙每天多完成这项工程的80分之1,则甲、乙单独完成各需多少天? 一件工作,甲单独完成要10小时,乙单独完成要11小时,甲和乙个做了7小时,甲完成了这件工作的几分之几?乙完成了这件工作的几分之几?哪个做得快些? 一项工程,甲工程队单独做要10天完成,乙工程队单独做6天完成,现甲工程队先做2天,乙工程队再加入合作,完成这A、B两地城际高速铁路预计在2012年5月1日正式运营,按设计要求,两地单程直达 一项工程甲单独做6天完成,乙单独做10天完成,甲独做1天后,甲、乙两人合作,又做了x天完成这项工程的6/5.根据题意列出方程:_________. "每年人均食品支出占人均支出的几分之几?",是人均支出分之人均食品支出吗 甲乙工程队合做,10天可以完成,如果甲队做4天,乙队做6天,共完成这项工程的15分之7,求甲独做要几天?要算术法 某工程,甲独做需20天完成,乙独做需要12天完成,甲乙两人合作6天后,再由乙继续完成,再做几天可以完成全部工程?用一元一次方程做,工程问题问题本人不擅长,有思路更好 ①的三角形的面积是②面积的几分之几,帮忙把式子也列出来,把原因也说说 已知一项工程由甲、乙两工程队单独完成,分别需要6天,10天,如果甲、乙共完成这项工程,且各做了整数天,那么怎样派工才能使完成这项工作的总工期最短?最短工期是几天? 一项工程 甲单独做20天完成 乙独做需30天完成 甲乙合作六天后 乙因事离开 剩下的甲要需几天完成? 数学题给下算式不要分部 70人相当于80人的几分之几 一项工程,甲乙两个工程队合作6天可以完工现在甲先做4天乙又接着做8天正好完工以每天完成这项工程的几分之几分之几?我给少了一个字大家快来回答 做一项工作,甲乙合作20天完成,甲干了6天后乙接着干4天,共完成了全部工程的1/4,甲单独干需要好多天? 修一条路,甲队单独修要15天,乙队单独修要12天,两队合修6天,两队各修完这条路的几分之几? 一项工程,甲单独做要10天完成,乙单独做要15天完成,现在甲乙合作4天,还剩下工程的几分之几 某工程,甲单独施工需要20天完成,乙单独施工需要12天,甲乙二人合作6天后,再由乙 继续完成,乙再做几天可以完成全部工程? 一项工程 甲队单独做6天完成,乙队独做15天完成,两队合作,一天完成这项工程的几分之几? 甲乙两个工程队同修一条路,同时施工,甲每天修a米,乙每天修b米,8天修完,这条公路长多少米? 某项工程,甲单独做需20天完成,乙单独做需12天完成,甲,乙二人合作6天后,再由乙继续完成,乙再做几天?(方程解) 一项工程,甲单独完成要10天,乙单独完成要15天两人各做3天,一共完成这项工程的几分之几 甲工程队单独做40天完成,乙独做30天后,甲乙合作20天完成.将工程分成两部分,甲用A天,乙用B天.A、B均为正整数,A〈15、B〈70.求A、B? 一件工作,甲乙两人合作30天可以完成.共同做了6天后,甲离开了,由乙继续做了40天才完成,如果这件工作由甲或乙单独完成各需要多少天? 一项工程,甲队单独做需要18天,乙独做15天完成,现决定由甲、乙二人共同完成,但中途甲有事请假四天,那么完成任务时甲实际做了多少天?请说说思路,感激! 甲乙两个工程队同修一条公路,他们从两端同时施工.甲每天修a米,乙每天修b米,8天修完,问这条路长多少米问这条路长多少米(要算出准确答案) 一件工作,甲、乙两人合作30天可以完成,共同做了6天后,甲离开了,由乙继续做了40天才完成.如果这一件工作,甲、乙两人合作30天可以完成,共同做了6天后,甲离开了,由乙继续做了40天才完成.如 一项工程,甲队独做15天完成.现在甲队单独做啦几天,再由乙对单独做,过共用拉11天完成,那么5天能完成吗 甲,乙两个工程队共同完成A和B两个项目.已知甲从单独完成A项目需3天,单独完成B项目需7天;乙队单独完成A项目需11天,单独完成B项目需9天.如果两队合作用最短的时间完成两个项目,则最后一天 一件工作甲乙两人合作30天可以完成,共同做了6天后甲离开了,由乙继续做了60天才完成,这件工作由甲乙各自这件工作由甲乙各自完成的话,各需多少天?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn