加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 云计算 > 正文

干货!MySql DAL中间件概括

发布时间:2022-07-16 15:35:12 所属栏目:云计算 来源:互联网
导读:1.前言 mysql作为互联网公司都会用到的数据库,如果在使用过程中出现性能问题,会采用mysql的横向扩展,使用主从复制来提高读性能,要是解决写入问题,需要进行分库分表。本文不会去介绍mysql的高可用,需要了解Mysql高可用架构相关的请戳 干货!MySql DAL中
  1.前言
 
  mysql作为互联网公司都会用到的数据库,如果在使用过程中出现性能问题,会采用mysql的横向扩展,使用主从复制来提高读性能,要是解决写入问题,需要进行分库分表。本文不会去介绍mysql的高可用,需要了解Mysql高可用架构相关的请戳
 
  干货!MySql DAL中间件总结
  浅谈MySQL集群高可用架构,本文主要介绍mysql的访问中间件(DAL)的一些实现方案。
 
  2.Atlas
 
  
  2.1.atlas简介
 
  Atlas是由 Qihoo 360公司Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基础上,修改了大量bug,添加了很多功能特性。目前该项目在360公司内部得到了广泛应用,很多MySQL业务已经接入了Atlas平台,每天承载的读写请求数达几十亿条。同时,有超过50家公司在生产环境中部署了Atlas,超过800人已加入了我们的开发者交流群,并且这些数字还在不断增加。
 
  2.2.atlas架构
 
  Atlas是一个位于应用程序与MySQL之间中间件。在后端DB看来,Atlas相当于连接它的客户端,在前端应用看来,Atlas相当于一个DB。Atlas作为服务端与应用程序通讯,它实现了MySQL的客户端和服务端协议,同时作为客户端与MySQL通讯。它对应用程序屏蔽了DB的细节,同时为了降低MySQL负担,它还维护了连接池。
 
  干货!MySql DAL中间件总结
  2.3.主要功能
 
  1.读写分离
 
  2.从库负载均衡
 
  3.IP过滤
 
  4.自动分表
 
  5.DBA可平滑上下线DB
 
  6.自动摘除宕机的DB
 
  Atlas相对于官方MySQL-Proxy的优势
 
  1.将主流程中所有Lua代码用C重写,Lua仅用于管理接口
 
  2.重写网络模型、线程模型
 
  3.实现了真正意义上的连接池
 
  4.优化了锁机制,性能提高数十倍
 
  3.Mysql router
  
  3.1.mysql router简介
 
  3.2.mysql router架构
 
  干货!MySql DAL中间件总结
  1.Router实现读写分离,程序不是直接连接数据库IP,而是固定连接到mysql router。MySQL Router对前端应用是透明的。应用程序把MySQL Router当作是普通的mysql实例,把查询发给MySQL Router,而MySQL Router会把查询结果返回给前端的应用程序。
  2.从数据库服务器故障,业务可以正常运行。由MySQL Router来进行自动下线不可用服务器。程序配置不需要任何修改。
  3.主数据库故障,由MySQL Router来决定主从自动切换,业务可以正常访问。程序配置不需要做任何修改。
  MySQL Router读写分离原理:
 
  MySQL Router接受前端应用程序请求后,根据不同的端口来区分读写,把连接读写端口的所有查询发往主库,把连接只读端口的select查询以轮询方式发往多个从库,从而实现读写分离的目的。读写返回的结果会交给MySQL Router,由MySQL Router返回给客户端的应用程序。
 
  3.3.mysql router主要功能
 
  MySQL Router的主要用途是读写分离,主主故障自动切换,负载均衡,连接池等。
 
  4.Mycat
 
  干货!MySql DAL中间件总结
  4.3.mycat主要功能
 
  支持SQL92标准
  遵守Mysql原生协议,跨语言,跨平台,跨数据库的通用中间件代理。
  基于心跳的自动故障切换,支持读写分离,支持MySQL主从,以及galera cluster集群。
  支持Galera for MySQL集群,Percona Cluster或者MariaDB cluster
  基于Nio实现,有效管理线程,高并发问题。
  支持数据的多片自动路由与聚合,支持sum,count,max等常用的聚合函数。
  支持单库内部任意join,支持跨库2表join,甚至基于caltlet的多表join。
  支持通过全局表,ER关系的分片策略,实现了高效的多表join查询。
   支持密码加密
  支持服务降级
  支持IP白名单
  支持SQL黑名单、sql注入攻击拦截
  支持分表(1.6)
  集群基于ZooKeeper管理,在线升级,扩容,智能优化,大数据处理(2.0开发版)。

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读