zoukankan      html  css  js  c++  java
  • MySQL数据库读写分离、读负载均衡方案选择

    MySQL数据库读写分离、读负载均衡方案选择

    一、MySQL Cluster外键所关联的记录在别的分片节点中性能很差
    对需要进行分片的表需要修改引擎Innodb为NDB
    因此MySQL Cluster不适合存在大量外键约束,引擎为Innodb的数据库

    二、Galera Cluster多个服务能同时被读写,无延迟复制,不会产生数据丢失热备用。
    支持InnoDB引擎对应用程序透明:应用程序不需作修改。
    新增服务器时,不需手工复制数据库到新的节点。
    应用案例超过2000多家外国企业使用。
    Galera Cluster for MySQL | The world's most advanced open source database cluster
    http://galeracluster.com/
    MariaDB Galera Cluster集群优缺点_mailrun_新浪博客
    http://blog.sina.com.cn/s/blog_548c8a830102vrgw.html
    CentOS 6下安装部署Galera Cluster for MySQL集群_数据库技术_Linux公社-Linux系统门户网站
    http://www.linuxidc.com/Linux/2014-09/106679.htm


    三、建议采用360开源的高可用DB代理层Atlas+Keepalived实现MySQL读写分离、读负载均衡。
    采用Atlas+Keepalived实现MySQL读写分离、读负载均衡 - 人生理想在于坚持不懈 - 51CTO技术博客
    http://sofar.blog.51cto.com/353572/1601552/

    Atlas+Keepalived实现MySQL读写分离
    主要有以下优点:
    (1)、基于mysql-proxy-0.8.2进行修改,代码完全开源;
    (2)、比较轻量级,部署配置也比较简单;
    (3)、支持DB读写分离;
    (4)、支持从DB读负载均衡,并自动剔除故障从DB;
    (5)、支持平滑上下线DB;
    (6)、具备较好的安全机制(IP过滤、账号认证);
    (7)、版本更新、问题跟进、交流圈子都比较活跃。

    官方开源介绍:
    https://github.com/Qihoo360/Atlas/blob/master/README_ZH.md
    一、简介
    Atlas是由 Qihoo 360公司Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基础上,修改了大量bug,添加了很多功能特性。目前该项目在360公司内部得到了广泛应用,很多MySQL业务已经接入了Atlas平台,每天承载的读写请求数达几十亿条。同时,有超过50家公司在生产环境中部署了Atlas,超过800人已加入了我们的开发者交流群,并且这些数字还在不断增加。
    主要功能:
    1.读写分离
    2.从库负载均衡
    3.IP过滤
    4.自动分表
    5.DBA可平滑上下线DB
    6.自动摘除宕机的DB
    二、Atlas相对于官方MySQL-Proxy的优势
    1.将主流程中所有Lua代码用C重写,Lua仅用于管理接口
    2.重写网络模型、线程模型
    3.实现了真正意义上的连接池
    4.优化了锁机制,性能提高数十倍
    Atlas的架构 · Qihoo360/Atlas Wiki · GitHub
    https://github.com/Qihoo360/Atlas/wiki/Atlas%E7%9A%84%E6%9E%B6%E6%9E%84
    Atlas是一个位于应用程序与MySQL之间中间件。在后端DB看来,Atlas相当于连接它的客户端,在前端应用看来,Atlas相当于一个DB。Atlas作为服务端与应用程序通讯,它实现了MySQL的客户端和服务端协议,同时作为客户端与MySQL通讯。它对应用程序屏蔽了DB的细节,同时为了降低MySQL负担,它还维护了连接池。

     附上一张上面51CTO技术博客的架构图:

  • 相关阅读:
    C# 控制反转
    控制反转和依赖注入
    C#中使用AOP
    jquery ajax
    python(7)- 小程序练习:循环语句for,while实现99乘法表
    007所谓性格与条件并不是成功的阻碍,懦弱才是
    006学习有可能速成吗
    005自学与有人带着哄着逼着学的不同在于自学是一种成熟的自律
    005单打独斗意味着需要更好地管理自己
    004真正的教育是自我教育,真正的学习是自学
  • 原文地址:https://www.cnblogs.com/zdz8207/p/MySQL-Cluster-Atlas-Keepalived.html
Copyright © 2011-2022 走看看