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

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

跳过开发者,专注补Bug的iOS 8 Beta 6悄然发布 集群管理可以很简单,Google又放大招 应用内直接打车:Uber面向第三方开发者开放API 百万美元巨奖!英特尔启动感知计算挑战赛 IBM 2014技术峰会在京开幕! OpenGL 4.5规范标准发布,大大提升API性能! 更萌更贱:Flappy Bird开发者推虐心新作Swing Copters 学习的革命:AR增强现实遇到儿童应用 颠覆旧概念,IBM Bluemix开启云开发时代 专访企业QQ SaaS团队,谈企业级LNMP架构设计 《近匠》Coding:将软件开发搬到云上 小米与美视频游戏服务Ouya合作 进军国内客厅 新工具Get!轻松实现2D画面动态光影的Sprite Lamp 一周消息树:罗升阳的Android之旅 手游不易:GungHo 3.44亿美元售Supercell股权 周末去哪儿 当然是去2014微信开发者大会!(附参会提醒和名单) 开源框架Ember.js迎来1.7.0和1.8 Beta 1更新 《近匠》RealSense:几行代码,为游戏添增实感交互 MDCC游戏应用征集关键词:中小团队,3D,转型,IP 共话HealthKit:能否颠覆医疗保健生态系统? Perception Neuron系统,让动作捕捉技术不再高冷 2014年DevOps实践调查报告 .NET程序性能的基本要领 百度手机卫士宣布开放三大能力 构建互联网安全生态 火速围观,AMD APU新芯片架构A68H呼之欲出! 对于测试人员而言,TDD意味着什么? 年用电910亿度,那些庞大的数据中心该用什么支撑 走近黑客们的世界,感受网络空间的心跳 VMworld 2014 Day One:Docker、数据中心、混合云新举措 Docker和Kubernetes或将加速SDN发展 前端开发框架三剑客—AngularJS VS. Backone.js VS.Ember.js 腊肉是月老啊,单身的哥哥们找腊肉拉红线啊! 新闻搜索 using namespace std; 微星845 Ultra-C 支持P4赛扬2.0的吗? 请问哪里有关于cc的比较好的文档资料. 水晶报表的问题!!!!!!!!!!!! 关闭Jbuilder9时,会弹出微软拼音输入法的关于信息框,如何解决? TreeView的删除问题/// 怎样在delphi里使用windows定义的结构体 问个问题 顺便散分 sub main问题 郁闷,一夜起来信誉分掉了一大截,散分 请问UNIX下makefile 是怎么一回事 我在学习C#,不过基础不好,很吃力!中秋快乐! 如何防止文件被访问?谢谢! 今年中秋我爸收了一大堆礼物,价值估计不下于20万(我爸是税务局长),呵呵,太高兴了!再散点分给大家!今年中秋我爸收了一大堆礼物, ASP.NET有没有类似javascript中的window.confirm( )这样的方法,弹出对话框提示是否确认? C#builder里的CaliberRM有谁用过? 学ASP学的我晕了,大家给条路!!! 简单问题求助~~~~~~~~~~~~~~~ sql7.0到sql2000升级 图像存储及传输的计算问题? 为什么不能共享? 大家讲讲TreeMap的使用,回答好的立刻给100分!! 请问哪里有免费的或破解的查木马软件下载?? 在ASP.NET中能控制输入法吗?在.NET应用程序中有一INPUTLANGUAGE类,可以控制,在ASP.NET中能实现吗? 有谁做过用moden拨号连接,访问另一台pc,建立连接 如何让bean中的“输出”定位到网页中的特定位置? 请问以下这个项目如何设计?关于图形数据库系统的 触发器的大问题,请各位高手支招: CEO是个什么职务?有多大管理权限? 一个看似简单.....其实非常难的问题....小妹初学web开发. 为什么不能共享??? 100分求:哪儿有《深入理解linux内核》可供下哉! 工作机会 JBUILDER是否帶有TomCat﹐如何安裝使用﹖ 这里有没有用过realbasic的朋友 为什么不能共享??? 报表怎么样进行总计,一个QRexpr的问题? 请推荐 求救,如何用实现在同一个局域网内另外一台电脑用ADO访问服务器的ACCESS文件,马上给分 请问高手,以下问题如何解决? 在java中怎么把日期0204改成2002-04 在自己建立的文件夹下建立文件,可怎么都不对头!!SOS!! 数据窗口打印问题,多多帮忙!!!!!!!!!!!!!!!!!!!!!!!!!! 在SQL中写个函数,急 我刚学编程没有多久,发现在数据库很重要,但不知道怎样一个用一个系统方法去学习?请各们前辈能给我以指点。非常感谢!!! 我用ADO做了一个数据库应用,数据库是ACCESSXP,ODBC JET4。0?有一个问题 使用DEV-C++进行命令行编译的设置问题 请问高手,如何解决图形数据库问题? 如何用script判断表单中的某个输入框的值是一个空格或者是多个空格? 初二科学题:将制备的硫酸铜溶液与其他同学制备的硫酸铜比较,你得到哪些启示? The ploughing set cappuccino什么意思 高二课文杜浦诗赏晰秋兴八首,咏怀古迹,登高 英语翻译Until recently,market experiments focused almost exclusively on the behavior of sellers.Like the theory the experiments are designed to test,buyers are assumed to act as passiveprice-takers.Thus,human buyers are replaced by a computer alg cappuccino movie翻译中文谢谢急用的 求关于夜晚赏海的文章 英语国家与非英语国家考GRE的题目有什么区别如题今天我问我朋友(印度人)他说非英语中国家的GRE比英语中的国家题目容易很多我现在在印度准备考托福请问在印度考好些还是在中国考好 关于母爱的作文200字 国家结构形式 名词解释:联合国包括成立时间、外交特权、性质、发挥的作用等 瑞士战机坠毁人员伤亡未知 警方调查事乔治小王子洗礼袍仿1841年维多利亚新加坡中小企业对天津服务业投资增长迅俄罗斯总理梅德韦杰夫访问安徽后回国世界审计组织明确未来四大发展方向长沙警方回应《新快报》记者被刑拘:捏陈永洲、新快报诉高辉及中联重科案 管狗追捕兔子摔断腿 滞留高山上三周奇迹习近平会见印度总理辛格瑞士一战机在该国中部坠毁 人员伤亡未瑞士一战机在该国中部坠毁 人员伤亡未读者心语业绩快报酒城老板容留妇女卖淫获缓刑北京上海成都被美国列入监听城市再念“紧箍咒”,食品安全如何升级?招商银行九家分行11月1日起系统升级张掖女收藏家10件陶器捐献博物馆女子给资格证转户跑8趟不成续:甘陕两甘肃纸媒搭建新型营销平台“人民币女郎”病危就医为新中国首位女党政领导干部在企业兼职不得领报酬铁血邪神毒霸星海重生洪荒之我是凡人仙荒劫超级魔农逍遥录武耀星河调教纨绔无双红楼衙内贾宝玉至尊无间九州仙魔记万达长白山国际度假区旅游长白瀑布旅游十渡漂流旅游九门小吃街旅游龙山石窟旅游岐江公园旅游西山寺旅游商业文化博物馆旅游腾龙洞旅游徽杭古道旅游绕南陶瓷主题园区旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘