作家
登录

Go在酷狗数据库中间件的应用

作者: 来源: 2017-12-11 15:05:04 阅读 我要评论

开辟者大年夜赛路演 | 12月16日,技巧立异,北京不见不散


大年夜数据

本次分享重要环绕Go在数据库中心件应用这方面展开;起首会聊一下法度榜样开辟的需求,具领会参考Go的特点是否知足这些需求;接下来会介绍一下近期采取Go说话开辟的mysql中心件这个项目,整体筹划,分表路由、故障切换、腻滑扩容,体系运维,重要大年夜以上这五个方面进行展开。

法度榜样开辟需求

说话特点精华精辟,轻易入门

开辟效力高,代码逻辑清楚

运行机能强,节俭机械资本

安排保护便利

生态圈完美

Golang的特点

结合Golang与C之间差别,阐述一下Golang的特点:

扩容的工作道理:mysqldump导存量数据 + binlog追增量

Go语法简洁;没有进修压力

开辟效力高;说话描述才能接近于脚本说话

机能高;接近于C/C++,充分应用资本

轻易安排;可履行法度榜样,编译时解决上线安排、运行时的依附

强大年夜的标准库、丰富的第三方库、go test、pprof

主动内存治理;内存泄漏与野指针是C/C++说话开辟者的恶梦

Go routine + channel;简单的并发与简略单纯的数据同步

Go开辟mysql中心件

  • 体系整体筹划

图 1

上图是体系整体框架图,整套体系致力于供给一套 mysql 分布式解决筹划,上层应用接入本体系与应用单机mysql一样;体系内部会做一些路由分发、故障切换、读写分别等工作。

proxy接收SQL请求,解析SQL语句、路由分发以及组装返回结不雅;

dbmoniter主如果负责故障切换、数据修复等;

zookeeper上存储相干的设备信息。

  • 分表路由逻辑

分表规矩遵守哈希分表与分段分表两种;哈希分表是shardkey经由过程Hash函数分表,分段分表是按照年、月、日或者整形范围进行分表。这两种方法的差别在于因哈希规毫不合,导致其数据组织方废喔赡差别性。

  • 故障主备切换

关于MySQL的高可用筹划,业内风行的解决筹划有MHA。MHA在安排方面照样有点麻烦的,须要在每台机械上都安排一个agent,然懊机械之间进行SSH授权。我们采取的策略是经由过程设备Rsync拉取mysql的binlog日记的方法处理。

故障的几种情况以及对应的处理:

  1. 昔时夜节点挂掉落,可以剔除下线的处理;
  2. 当主节点挂了,然则机械存活的情况下,可以经由过程binlog恢复数据,将备节点晋升为主节点;
  3. 当主节点挂了,同机会械不存活的情况下,可以采取relaylog恢复数据,同时将备节点晋升为主节点。

我们实现了如下的双主模式主备切换机制,这点是MHA不支撑的。

图 2

主备切换数据恢复的过程:Master故障时试图经由过程Rsync拉取Binlog,最大年夜程度包管数据不损掉;Slave之间的数据差别经由过程中继日记恢复。

mysql-group都是一个“复制集”,可所以主大年夜模式、主主模式;

本体系开辟的出发点是:冲破mysql的单机、单表容量,解决mysql拜访的单点问题。

图 3

  • 在线腻滑扩容

数据迁徙的方法分为两种:

  1. 表迁徙,将整张表的数据年腋荷琐Mysql迁徙到另一个;
  2. 表拆分,将数据表的部分数据年腋荷琐Mysql迁徙到另一个数据库的过程。

扩容工作流程:

起首,导出存量数据;

其次,订阅binlog变革,追增量;

再次,待同步后,修改路由规矩;

最后,清理不须要的冗余数据。

如许设计的好处就在于个中任一环节出问题都可以立时进行回滚,对数据操作比拟较较安然;下图是扩容时的流程图。

图 4

  • 体系治理敕令

法度榜样开辟对开辟说话的请求,简单概括如下几点:

图 5

如图 5 所示是供给了几个重要治理敕令,比瘸老下线MySQL、数据迁徙指令、添加路由等。

【编辑推荐】

  1. Go说话若何实现遗传算法
  2. 前端开辟者该若何设置数据库
  3. 若何为您的微办事选择混淆和多模型数据库?
  4. 应用Python连接MySQL数据库
  5. Python oracle数据库操作时,中文萌芽报错
【义务编辑:庞桂玉 TEL:(010)68476606】

  推荐阅读

  程序员这个职业会是另一个即将破裂的泡沫?

开辟者大年夜赛路演 | 12月16日,技巧立异,北京不见不散一位同伙比来向我提了个问题,这个问题我曾经在不合的论坛上听到过,固然问题的情势不太一样:“你认为IT和一些初级其余编程工作最终会消掉>>>详细阅读


本文标题:Go在酷狗数据库中间件的应用

地址:http://www.17bianji.com/lsqh/39658.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)