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

奇虎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平台部基础架构团队!希望未来有更多的好的产品实现开源!(付江、陈秋歌/文)

【CTO沙龙】CDN在共享经济下的创新应用 深入浅出Fetch API 带你入解应用场景及适用问题 SDCC 2015讲师专访精彩集锦(二):途牛网、饿了么、快的等大牛都来了 百度、饿了么、美团专家齐聚SDCC2015,剖析前端开发核心技术 【SDCC讲师专访】百度乔刚:前端可视化难点分析及探索实践 【CTO讲堂】Growth Hacking背后,数据分析平台的架构调整 BAT、巨杉、南大、柏睿等齐聚SDCC—新一代数据库专场议题曝光! 《近匠》BeeCloud创始人黄君贤:三行代码集成支付的技术实现 【SDCC讲师专访】AdMaster技术副总裁卢亿雷:分布式数据库挑战与分析 tvOS真的代表了应用的未来吗? 使用Fetch API和ES6生成器构建异步API Android应用性能优化实践 华云数据:OpenStack的技术践行之路 【SDCC讲师专访】腾讯潘安群:腾讯云金融级数据库TDSQL分析 高颜值、高品质——安全技术论坛议题曝光! 移动应用开发者正饱受折磨 在Android平台上加载本地库的危险性 《近匠》程序员客栈,程序员背后的经纪人 【CTO讲堂】浅析工业级物联网项目的快速开发 云适配陈本峰:平台型企业级浏览器是未来办公移动化的核心 警报:XcodeGhost已扩散至第三方框架 我们眼中的应用另一端是什么? 【SDCC讲师专访】百度马如悦:不写代码的架构师不是好架构师 企业级应用避免臃肿混乱的6大黄金法则 SDCC 2015讲师专访精彩集锦:程序员界“香饽饽”、大神级人物都在! 从技术经理的角度算一算,如何可以多快好省的做个App(一) 【SDCC讲师专访】Java泛型作者Gilad Bracha:优秀的程序员应该未雨绸缪 【CTO讲堂】微服务架构在云端的应用 SDCC 2015创业项目路演火爆征集:寻找中国好项目 被遗忘的设计模式——详解Swift语言中的Null Object Pattern Synaptics发布全新触控及生物识别方案,正式进军车联网 帮忙解释一下implementation什么意思,有什么作用. A Question about ActiveForm and TabStop. 用于从INI文件中读字串的函数是什么?请示高手! 清問:Datareport實現不了的功能如何實現?清大蝦指教,謝謝! 检测下拉列表中批配项,有则选中 为什么DBGRID显示一片空白,记录应该取到了。代码如下: 谁有免费出国代理,急用。如果能有,马上给分 关于学习.net与j2ee的抉择问题,欢迎各位大侠热烈讨论!!! 求PHP代码,功能是:判断字符是否全部为汉字? 又是MSFlexgrid的问题!!!请大家帮忙~! ActiveX访问数据库的问题? REDHAT LINUX 7.2下如何建立多个用户?多谢指点! 关于网线!高分!!!!! 关于生成文件的方法? 课程表开发 请问各位前辈,是否只有新增加的字段才有可能成为计算字段?谢谢! 俺要写一个简单的文本的报文,string类型的 关于生成文件的方法?..... 有谁能告诉一下我CVS和SSF是什么?,具体是指些什么?? WIN2K 的问题:1、怎么允许本地普通用户(user)关机;2、怎么能让本地普通用户开机后,客户机连接到SQL SERVER?3、为什么我的SQL量SERVER2K需要停止然后再启动客户才能用? 如何用VB把存储在ORACLE库中的图片字段取出成.JPG格式的图片文件????急在外出差呀多谢了~~~~~ 如何退出函数?exit function??? 测试2000的TCP/IP是否通,用什么命令 求助开发课程表提示 (*****向斑竹你提个小见意,大家最好都来看看,这个想法好不好!****) 为什么我做的增加功能有两个必须要按两次“添加”按钮才能新增一条记录啊? 很急,请教高手,如何把一个ip格式的字符串转换成ip类型,不是用getbyname(),而是像int和string转换一样的概念 请问如何让基于对话框的工具条一开始就浮在上面 来者有分,关于ado的 毛子青论文<<动态规划的优化>>,一个最长子序列的算法,请高手看过来(给出c实现代码的送20分!) 在鼠标单击时间中,可以使用什么函数取得鼠标点击处的坐标值 怎样在单击左键时弹出PopupMenu? 连续20多天加班,近来明显感到体力透支,做个调查!!!(有分) ASP调用VB编写的ActiveX DLL的问题 请教一sql语句 在Unix下用cc(实际上是cc_bundled文件)编译c程序时,报错“const" will become a keyword,或者告诉我“Function prototypes are an ANSI feature" 为何加入winsock2.h后会出现很多问题? 热烈庆祝:Kingron重出江湖!!!菜鸟们有福喽……散分 you shen me qu bie ? please tell me , xie xie ! [■■■Delphi猛料■■■]V1.3发布~~~~~~~更新到2001.12.12 提问:如何在ToolBar上加控件? 我在OLE里调用了word2000文档,为什么只显示第一页,我查了半天资料都没有解决,请帮我 哪里有多媒体软件制作论文啊? 继续请教各位前辈:能否将非新增加的字段定义成计算字段?谢谢! 软件创意、需求大汇集:列创意,拿专家分,120分值大赠送(以后可继续追加) 局渔网 巨简单问题~~~ 进来有分,回答多分,不够再加!!! 关于关闭和启动数据库的问题,很急的!! java VS c#^-^ ?? 请进 寻求QuickReport3以上版本 for Delphi3 的源代码或者安装包? 請問哪大俠用過 ibm 的 bridge2java啊,我把Excel的所有類都導出來了,但它的QuickExcel.java文件還是運行不了, 为何往结冰的公路上撒盐? 海水结冰解冻后,会不会变成淡水?我在书上看见的,它说会.如果真的会,请简述下原因,不须长篇大论,对不起,说错了我说的是冰冻一些海水,再拿去其他地方解冻. 在积雪的路段上撒上盐后,即使在相同的气温条件下,融化成水的冰雪不再结冰了,这是为什么? 为何清除道路冰冻积雪时要撒盐 温度计的测量范围是多少到多少? 温度计有何作用,使用方法,如何查看. 大家都知道压强越抵,水的沸点越低.那如果把水放进太空那种真空环境 ,它的沸点是多少呢?又是以什么方式沸腾呢? 为什么海水结冰后,再融化可以变为淡水(如,北极冰山) 撒盐在水上能令水难结冰点吗?就这样 求压强与水的沸点的关系式. 海水和淡水结冰有什么区别 冬天在结冰的地上撒盐为什么可以防止水再结冰要用物理的知识,最好是熔化和凝固的知识 冬天为什么在道路上撒盐能让冰融化说说具体原理和知识, 海水与淡水的结冰温度相同吗? 为什么结冰要撒盐在路上? 为什么冰撒了盐后会溶化的更快? 海水冰冻后的冰块是淡水海水如果结成冰块,那这个冰块是不是可以食用,不会像海水那样水的来源爱斯基摩人的饮用水是十分珍贵的.他们需要到冰山上去取回冰来融化,才有水用.因为北冰洋 云在物理里是液态还是固态 真空度与水的沸点的关系是直线关系还是曲线关系啊,化学实验要作图,做出来的数据描点后似曲线又非曲线,很纠结啊.如果能给条公式就更好了. 真空中水的沸点是级°C?rt 实验室蒸馏水装置温度计的作用是什么? 谁能提供水在不同真空度下的沸点? 冰冻的路面为什么要撒盐?目的是什么? 寒暑表的用途是什么 真空度为-0.08MPa时,乙醇的沸点是多少? 在结冰的道路上撒盐是为了降低冰的什么拜托了各位 一种青铜器重达832.84千克 高达133厘米 铜 锡 铅的比大约是85比12比3 而铜 锡 铅各是多少 请问在什么情况下水的沸点会降低 蜡烛和猪油凝固时是向下凹还是向上凸 为什么要用铜与锡合金制成青铜器物? 通常情况下水的沸点,凝固点: 为什么要向结冰的公路撒盐? 铜的比例越高,青铜器就越____ 什么情况下水的沸点会低于100摄氏度有两个为什么水的沸点不是100摄氏度、、一个是外界大气压小于一标准大气压、、还有一个不知道、、各位人士,,帮忙啊~~~ 人们往冰冻的路面上撒盐,这是为什么 制造青铜器在铜里加入锡是为什么? 一般情况下水的沸点能到达100摄氏度吗 小明同学点燃一支蜡烛,不小心蜡油溅到了手上,他啊的一声,发现蜡油在手上凝固,可手上却烫起了泡.请说明小明手上起泡的原因. 青铜器是哪三种金属的合金 A铜铁铝 B铜银铅 C金银铜 D铜锡铝 物质的热胀冷缩与分子有什么关系 蜡烛和蜡油有什么区别?蜡油能当蜡烛用么? 海水为什么不容易结冰啊? 气体热胀冷缩如何用分子的运动来解释? 点燃的蜡烛,蜡油会一滴滴地滴下来,这是蜡的什么过程;冷却后,蜡油又变成了蜡块,这是蜡油的什么过程.我是初2的学生,在物理上遇到有不懂的问题, 淡水和海水那种结冰快? 热胀冷缩是分子变大?分子会变大吗?还是别的什么? 水银温度计测量范围实验室里的水银温度计最大测量范围标记的是300℃,每小格代表温度2℃,但在80℃到300℃之间就省略了每小格2℃的标记,也就是说从80到300之间只有10小格的间隔,这是为什么? 在相同气温下,为什么水不再结冰了?针对这个问题,小明的猜想是:撒盐改变了水的凝固点.设计一个方案验证他的猜想是否真确? 为什么冬天在路面上撒盐就能使融化了的冰雪不在结冰的实验设计:为什么冬天在路面上撒盐就能使融化了的冰雪不在结冰的实验 一种铜,锡合金有质量78%的铜.余下的为锡,问这种合金的密度是多少? 一种青铜,内含铜88份,锡10份,锌2份.要炼制这种青铜600吨,需要铜.锡.锌个多少吨. 寒冷的冬天.雨雪天气的道路上往往会结冰.在道路上撒些盐能加快冰的溶化.说明其中的道理. 一块合金体,质量为m,体积为v.已知金的密度为P1,铜的密度为p2,求该合金体的含金量?含铜量?(表达式). 青铜是由铜,锡,锌按44:5:1熔制而成的.现在要炼制800千克青铜,需铜锡锌多少千克? 为什么冬天要在马路上撒盐来加快冰的溶解? 温度计的测量范围是 温度计正确的使用方法 为什么温度高时,物体的分子之间的空隙会胀大 温度计的测量范围寒暑表、水银温度计、气温计的一般量程,最大及最小刻度.不要最高限度,一般用的就可以了 温度计用法买了个水银的温度计,想通过口含的方式,早上起来测量基础体温,但是测量后,我该怎样消毒,以方便下次干净的使用?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn