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

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

ListBox项的控制-VB资料 VB 6.0中类聚集关系的实现 VB6编程中如何获取硬盘分区信息 VB的坐标系统综述 VB调用C程序动态链接库的方法 VB对低层硬件的访问控制 VB软件开发中的错误捕获及处理技术 VB中Combo的一种输入检查制约方法的实现 VB中Winsock控制的UDP协议的使用 VB中的时间处理问题 Windows操作平台下CGI的实现 -VB资料 按下某组键(HotKey)便执行某程式-VB资料 把所有的字体名称放到 ComboBox -VB资料 把文件置入到Text或RichText中-VB资料 捕捉 MouseExit 事件 -VB资料 操作过程动态显示 -VB资料 查找月份的最后一天-VB资料 程序启动时,如何自动判断 MDB文件是否损坏并自动修复?-VB资料 读取和修改Windows注册表 -VB资料 对VB的IDE环境的扩展 防止文本控件中的部分滚动-VB资料 关闭正在运行的程序 -VB资料 关机消息的拦截 -VB资料 VB获得、设置鼠标双击间隔时间 VB获取当前系统平台 记载Windows使用的时间-VB资料 加速Visual Basic For Application(VBA) 监视程序的运行情况 -VB资料 交换鼠标按钮 -VB资料 交换鼠标左右键 -VB资料 禁止使用 Alt-Tab 或 Ctrl-Alt-Del -VB资料 把播放F4的时间上《我们程序员都是活雷锋》 随便问问:VC能不能调用Access中的Form,Report 用ADO在线程中打不开数据库,请帮忙 如何在VB中动态的加载Dll,并使用其加载的函数??? 高手们看过来 Oracle初学,兄弟们多帮忙了! 怎么打开一个.txt文件,然后一行一行读取? 请问大家知道一个局域网里的IP在因特网上如何表示的呢。 请问各位,如何在我的程序中用代码生成Access数据库? 神啊,救救我吧,我想要含笑半步喋=== 请教NT4。0下的IE2。0怎样升级到IE6。0或IE5。0? 我要在程序中重载CBitmap类的一个函数,请问如何做 为什么我在bcb的new中找不到multitier(就是多层)选项页 请问如何知道数据库中有哪些表存在?在线等待 向各位大侠求救中 这是数据库的缺点吗? Choice.asp?VehicleType=a+&VehicleColor=Red + 传不到Choice.asp 如何获取文件扩展名关联信息 急!应选择什么样的服务器? 请问哪里有关于DOS和BIOS的系统功能调用的e书籍下载?谢谢指点 想用bcb的DirectX编一个显示器(第二个)的独占程序!希望专家指点!也欢迎大家来交流! 你碰到过这样的问题吗? What is meaning "$1 $2 " in perl? 配置支持ISAPI调用的 apache 服务器 怎样判断内存有没有被释放? window2000的安装和IE的问题 像我這樣的Boy,是否可以找到GF??? Oracle816连接问题,急 小妹有一事相求,请问哪里有SQL Server 7.0 的虚拟光盘下载啊?急!!! 谢了! Delphi的枚举类型是怎么用的?如果它的元素是字符串,怎样判断它和某个字符串相等? 我以前是用Delphi的,现在新找了家公司,是用C++Builder的,请帮忙推荐本C++Builder的书,谢谢 请问如何实现多媒体数据库??? SQL Server 7.0作为后台,它主要完成什么功能??!!求救!!!!!!! 请教WebUIValidation.js'的作用 2000 server 的 IE 的非法操作?(如果是非技术的,也请斑竹手下留情。) 求助:开发一个小型数据库,使用那种哈希函数适宜 如何调用IE的缓存 如何获取文件扩展名关联信息 小妹有一事相求,请问哪里有SQL Server 7.0 的虚拟光盘下载啊?急!!! 谢了! VC下通过ADO查询Oracle数据集个数为何返回为-1?? 请大家看看pb65自带的例子 很简单的问题,如何将EXCEL中的数据转换到ACCESS2000中,需源程序(一) 在ASP中如何将一字符型转为数据型??在VB中可用VAL,CINT,CDBL等,ASP中却不能?? 为什么安装jdk1.4,path中设置了jdk\bin路径后,appletviewer命令不出现applet窗口?? adodataset连接的问题? 请问带有图片,文字,和菜单的按钮(就像IE里,前进后退的按钮)用哪个现成的类 连接sql server数据库时出现的问题 shell编程的一个小……………………问题。 new 和delete的问题,调试错误。。。。 要在DBGrid中选中多项,除了用Ctrl和鼠标组合,还有没有别的方法? 最简单的问题,指针赋值。 一次远足中,一部分人步行,速度为5千米每小时,另一部分人做汽车,速度为每小时60千米,步行者比汽车提前一小时出发,这辆汽车到达目的地后,再回来接步行的这部分人.出发地到目的地距离为60 汽车由静止出发做匀加速直线运动,6s后改做允速直线运动4s,然后刹车改做匀速直线运动3s停止,全程共经过153m,求:1、汽车刹车后的加速度;2、车在第12s末的速度.这个问题有人这么回答1、-6m/ 要除去一溶液中的杂质,要怎么知道加入适量的什么才能除去.比如要除去NaCl中混有的少量Na2Co3,你是怎么知道加稀盐酸才能除去 某物体由静止开始作匀加速直线运动.加速度大小为a1.运动时间为t1.接着作加速度大小为a2的匀减速运动.再经过t2速度恰好为零.则物体在全过程的平均速度可表示为?为什么0.5a1t1和0.5a2t2 也对 中世纪西欧宗教对当时的科技,社会的影响拜托了!急呀!. 除去氯化钠溶液中的少量的碳酸钠,可加入适量的..A.石灰石 B.氯化钠溶液 C.硝酸 D.氯化钙溶液 如何鉴别碳酸铵,硫酸铵和尿素以及方程式 全国人大闭会期间,全国人大常务委员会对全国人大制定的法律能否修改或补充? 酸,碱,盐在水溶液中发生的复分解反应,实质上是?这类离子反应发生的条件是? 如何鉴别氯化铵和尿素?用硝酸银和稀硝酸可以吗? 西欧中世纪建筑风格 酸、碱、盐在溶液中进行的复分解反应,如果有什么,或有是,或有什么.这时复分解反应就可以发生,否则酸、碱、盐在溶液中进行的复分解反应,如果有____,或有____ 或有____.这时复分解反应就可 008年全国人大通过《关于修改的决定》,征收个人所得税的起点从1600元提高到2000元,也就是说,原来月收入超过1600元的部分为全月应纳税所得额,提高到月收入超过2000元的部分为全月应纳税所 目前中华人民共和国全国人大及其常务委员会共制定多少部法律.地方法律法规不算,只要全国法律. 酸、碱、盐在水溶液中发生的复分解反 应,实质上是______.这类离子反应发生 的条件是____________,只要具备上述条件 之一,反应就能发生. 2000年10月31日,第九界全国人大常务委员会第十八次会议通过的《中华人民共和国国家通用语言文字》所称的国家通用语言文字是什么 全国人大及常委会制定的税收法律有哪些?以及 授权国务院制定的又有哪些? 酸、碱、盐间发生复分解反应的条件是 用碳酸氢钠吸收二氧化硫,二氧化硫少量和多量时的反应方程式分别是? 西欧中世纪 1.采邑改革中形成的层层分封不会使国家土地的不断分割,为什么还会形成大的庄园经济啊?2.封建等级制中封建主的势力坐大,这是否就必然会形成封建割据呢?3.中世纪时的大学说 酸 碱 盐之间发生的反应 什么 什么 什么 什么是复分解反应 二氧化硫与小苏打反应的方程式如题 西欧中世纪的历史简介 西欧的封建社会何以称为“中世纪”是西欧封建社会称为“中世纪”,不是一个时间的概念哦~~~ 碳酸氢钠与二氧化硫的反应方程式 煤气灶具是玻璃面板的好还是不锈钢的好呢?我想买一台灶具,本想买玻璃的,但商家都告诉我玻璃的容易裂,还是不锈钢的好,请问各位大侠是这样么 要除去NaCl溶液中所含少量Na2CO3,得到纯净的食盐水,可向溶液中加入适量的[ ]A、Ba(OH)2 B、CuSO4 C、CaCl2 D、盐酸 中世纪西欧人的书写材料主要是: 要除去NACL种混有少量NA2CO3,最好加如适量的( )A水 B 氢氧化钙 C 硫酸 D 稀盐酸可用CACO3表示的一组物质是( )A 大理石 石灰石 B 石灰石 熟石灰C 大理石 生石灰 D 熟石灰 生石灰 在酸,碱,盐的水溶液里能够自由移动的电荷上什么和什么? 我想做点胶水,里面要用到二辛酯 和 乙二醇 它们在里面各起什么作用? 混在氯化钠中的碳酸钠怎样消除 酸、碱、盐的水溶液中,能自由移动的电荷是?怎么判断啊? 全国人民代表大会及其常务委员会.全国人大常委会的区别是什么?还有个问题,这是一道题:2010年10月28日,十一届全国人大常委会第十七会议表决通过修改后的《中华人民共和国村民委员会组 氯化钠溶液中,混有少量碳酸钠,用什么物质去除碳酸钠? 酸、碱、盐的水溶液中,能自由移动的电荷是哪两种 请问全国人民代表大会、全国人大常务委员会和全国人大常委会的区别和关系?全国人大常务委员会就是全国人大常委会吗? Na2CO3中混有少量NaCl,除杂.RT,最好简单易行 电子绕核高速运动.酸,碱,盐的水溶液中的自由电荷是( ) 和( ). 全国人民代表大会和全国人大常委会的区别?我的理解是,因为全国人民代表大会是国家的最高权力机关,一年召开一次.那么平常还是需要有人来管事,人大就选一些人组成全国人大常委会.那么, 地铁和汽车直线那个快,绝对速度 金属导体中的自由电荷是------,酸、碱、盐水溶液中的自由电荷是----- 中共中央政治局常委会和全国人大的关系 碳原子数为10或小于10的烷烃分子中,其一卤代物不存在同分异构体的烷烃分子有几种 A 2 B 3 C 4 D 5 怎样除去氯化钠溶液中的碳酸钠?方法是?反应方程式?都要回答清楚的。 全国人大常委会和全国人民代表大会哪个大 氢氧化钠 碳酸钠 氢氧化钡 三种无色溶液 用一种试剂 鉴别的方法 全国人大审议通过《关于修改的决议》是行使______权注意书名号~=V=thanks 现行宪法规定,有权制定基本法律的机关是() A全国人民代表大会 B全国人大及其常务会这里的“基本法律”指的是那些法律,不是全国人大制定的法律才是基本法律吗? 怎样判断酸、碱、盐 导电性的强弱? 全国人大表决通过关于修改《选举法》的决定是在行使什么权 一辆车以40公里时速行走一段时间后,在以60公里时速返回,请问平均数度是多少,谢谢了我要面试考生这个题目! 怎样判断导电性的强弱 2010年3月,十一届全国人大三次会议表决通过了关于修改选举法的决定.体现了法律的什么特征 中世纪西欧的城堡介绍关于城堡的各个方面外面和里面的结构 功能.要全面些 化@~判断导电性强弱怎么判断其强弱?一题中:下列物质属于非电介质,但放入水中所得溶液导电性明显增强的是?A乙醇 B:三氧化硫A为什么不可也? 第十一届全国人民代表大会第三次会议做出关于修改选举法的决定,实行城乡按相同人口比例选举人大代表,符合各族人民的共同利益,更好地体现了人人平等,地区平等,民族平等的原则.请问这 全国人大和人大常委各颁布哪些法律? 怎么判断金属导电性的强弱? 全国人大通过选举法修正案体现了中国全国人大怎样的性质和职权?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘