设为首页 收藏本站
查看: 839|回复: 0

[经验分享] MYSQL-galera多主集群

[复制链接]

尚未签到

发表于 2018-10-8 07:37:22 | 显示全部楼层 |阅读模式
  前言:网上总结的个人感觉要不太细,要不太粗,自己总结一下
  原贴:http://blog.csdn.net/everlasting_188/article/details/51438483
传统的2pc提交同步过程

  •   2PC 事务结束时,所有节点数据达到一致
  •   协调者与参与者之间通信,参与者之间无连接
  •   受网络状态影响较大
  •   两次通信,需要得到每个参与者的反馈后才能决定是否提交事务
mysql的主从复制

  主从复制的延时不好控制。
mysql多主复制
  每个库上的主键ID生成要不冲突,这样主主复制才不会冲突,一般都通过应用层来控制,对开发人员来说不透明,一般采用按照节点取模来生成。
Galera replication原理
  原理
  1、从客户端看整体的流程

  其中对应的角色分为2个:协调者和参与者
  2、从存储引擎看,Galera相当于嵌入到提交事务中的一个plug模块
  协调者
  1、 接收客户端请求
  2、 广播请求到其他参与者(包括自己)
  3、 作为参与者进行数据更新
  4、更新失败或者成功返回给客户端
  参与者
  1、接收协调者的广播请求,然后进行数据库的更新
  时序图

  关键技术
  1、全局唯一ID生成,保证ID的唯一和递增
  2、协调者自己也是通过广播接收后进行的数据库业务操作,各个节点平等,保证了并发
  3、事务传输要么成功传给了所有节点,要么都失败
  4、事务在所有节点中的顺序一致
  5、每个节点知道所有节点的状态(通过广播实现)
  优点
  1. 同步复制,主备无延迟
  2. 支持多主同时读写,保证数据一致性
  3. 集群中各节点保存全量数据
  4. 节点添加/删除,自动检测和配置
  5. 行级别并行复制
  6. 不需要写binlog
  缺点
  1、每个节点独立、异步执行会导致节点不一致性(每个节点其实是维护一个队列),为了保证各个节点的最终一致性,必须使用类tcp的滑动窗口来进行限制,实现原理如下:
  整个galera cluster中,同时只有一个节点可以广播消息(数据),每个节点都会获得广播消息的机会(获得机会后也可以不广播),当慢节点的待执行队列超过一定长度后,它会广播一个FC_PAUSE消息,所以节点收到消息后都会暂缓广播消息,直到该慢节点的待执行队列长度减小到一定长度后,galera cluster数据同步又开始恢复
  2、问题1导致的下一个问题是,节点中的最大的tps值取决于速度最慢的那个节点,所以各个节点的能力平衡很重要
  3、由于galera同步复制在每个写事务提交时都增加了replicate trx和certification test的开销,因此性能远远低于异步MySQL实例(异步mysql可以使用各种手段来提高提交tps)
  总结
  Galera replication for MySQL是一个高可用的方案,在牺牲性能的情况下,适合于关键业务。实际上关于在提交和交互的过程中,异常部分处理还是需要深入研究的,需要参考对应论文来说明(待续)


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-615382-1-1.html 上篇帖子: MYSQL安全策略→▉收集整理▋ 下篇帖子: Mysql备份--之LVM逻辑卷快照备份
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表