mysql中间件

Mysql访问中间件--Atlas初探

…衆ロ難τιáo~ 提交于 2019-11-29 09:01:17
Atlas是由 Qihoo 360公司Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基础上,修改了大量bug,添加了很多功能特性,目前该项目在360公司内部得到了广泛应用。 Atlas主要有以下功能 读写分离 从库负载均衡 IP过滤 自动分表(目前只支持在同一个库中进行分表) DBA可平滑上下线DB 自动摘除宕机的DB Atlas相对于官方MySQL-Proxy有以下优势 将主流程中所有Lua代码用C重写,Lua仅用于管理接口 重写网络模型、线程模型 实现了真正意义上的连接池 优化了锁机制,性能提高数十倍 下面就一步一步带大家去安装和使用Atlas数据库中间件 安装Atlas-sharding_1.0.1-el6.x86_64.rpm包 大家可以从++ https://github.com/Qihoo360/Atlas/releases++网站下载到最新的rpm包,推荐使用rpm包安装 加密应用访问mysql数据库访问密码 安装好Atlas的rpm包之后,进入到/usr/local/mysql-proxy/bin目录,使用下面命令对密码进行加密 ./encrypt tony ANDKNNypf4k= <--这个就是加密后的密码 配置Atlas配置文件(/usr/local/mysql

大规模数据如何检索?

倖福魔咒の 提交于 2019-11-29 07:07:08
思考:大规模数据如何检索? 如:当系统数据量上了10亿、100亿条的时候,我们在做系统架构的时候通常会从以下角度去考虑问题: 1)用什么数据库好?(mysql、sybase、oracle、达梦、神通、mongodb、hbase…) 2)如何解决单点故障;(lvs、F5、A10、Zookeep、MQ) 3)如何保证数据安全性;(热备、冷备、异地多活) 4)如何解决检索难题;(数据库代理中间件:mysql-proxy、Cobar、MaxScale等;) 5)如何解决统计分析问题;(离线、近实时) 来源: https://www.cnblogs.com/zeenzhou/p/11462649.html

双机高可用、负载均衡、MySQL(读写分离、主从自动切换)架构设计

久未见 提交于 2019-11-29 06:12:01
架构简介 此架构主要是由keepalived实现双机高可用,维护了一个外网VIP,一个内网VIP。正常情况时,外网VIP和内网VIP都绑定在server1服务器,web请求发送到server1的 Nginx ,nginx对于静态资源请求就直接在本机检索并返回,对于 PHP 的动态请求,则负载均衡到server1和server2。对于SQL请求,会将此类请求发送到Atlas mysql 中间件,Atlas接收到请求之后,把涉及写操作的请求发送到内网VIP,读请求操作发送到server2,这样就实现了读写分离。 当主服务器server1宕机时,keepalived检测到后,立即把外网VIP和内网VIP绑定到server2,并把server2的mysql切 换成主库。此时由于外网VIP已经转移到了server2,web请求将发送给server2的nginx。nginx检测到server1宕机,不再把 请求转发到server1的 php -fpm。之后的sql请求照常发送给本地的atlas,atlas把写操作发送给内网VIP,读操作发送给server2 mysql,由于内网VIP已经绑定到server2了,server2的mysql同时接受写操作和读操作。 当主服务器server1恢复后,keepalived不抢占server2的VIP,继续正常服务

MYSQL性能调优

允我心安 提交于 2019-11-29 03:43:32
摘要 为了学习研究MySQL数据库在工作原理,深刻理解MySQL在企业运用时如何保证其高效运行。分别从表结构的优化,SQL语句的优化,存储引擎的选择,索引的优化以及现今MySQL的发展与其他企业级数据库的比较。介绍了从编码选择到数据类型的选择以及从整体的角度设计表结构。在SQL语句的选择和使用的介绍的时候,深入介绍了一些基本的使用原则以及在一般在使用过程中我们存在的误区以及如何解决这些问题。着重介绍了MySQL的几个存储引擎MyISAM、InnoDB和NDBCluster的差异以及各自的适用范围。有介绍了MySQL的索引的一些优化的建议以及高屋建瓴地阐述和比较了MySQL的优劣和发展态势。 前言 数据库作为应用作为广泛,地位极为重要的中间件应用,学习和使用数据库管理系统变得越来越重要。为了研究和总结对mysql数据库的学习结果,特别从数据表结构、sql语句优化、存储引擎的选择、索引的应用、以及mysql的比较总结对mysql技术做了一个比较全面升入的介绍。使用mysql的过程中,如何更好地使用与优化越来越重要,在这篇文章中就阐述。 第一章 表结构的优化 数据表是数据库的具体表现形式,设计优良的数据库拥有良好的表结构,者不单单指数据库的表需要满足范式结构,为了更有利于具体操作,表结构还需要实际的可扩展性,以便于做增删改查,又需要根据数据表的具体作用做出调节

电商系统部署 MyCat & Nginx

跟風遠走 提交于 2019-11-28 21:49:13
1.开源数据库中间件-MyCat 如今随着互联网的发展,数据的量级也是撑指数的增长,从GB到TB到PB。对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求。这个时候NoSQL的出现暂时解决了这一危机。它通过降低数据的安全性,减少对事务的支持,减少对复杂查询的支持,来获取性能上的提升。 但是,在有些场合NoSQL一些折衷是无法满足使用场景的,就比如有些使用场景是绝对要有事务与安全指标的。这个时候NoSQL肯定是无法满足的,所以还是需要使用关系性数据库。如果使用关系型数据库解决海量存储的问题呢?此时就需要做数据库集群,为了提高查询性能将一个数据库的数据分散到不同的数据库中存储。 1.1 MyCat简介 Mycat 背后是阿里曾经开源的知名产品——Cobar。Cobar 的核心功能和优势是 MySQL 数据库分片,此产品曾经广为流传,据说最早的发起者对 Mysql 很精通,后来从阿里跳槽了,阿里随后开源的 Cobar,并维持到 2013 年年初,然后,就没有然后了。 Cobar 的思路和实现路径的确不错。基于 Java 开发的,实现了 MySQL 公开的二进制传输协议,巧妙地将自己伪装成一个 MySQL Server,目前市面上绝大多数 MySQL 客户端工具和应用都能兼容。比自己实现一个新的数据库协议要明智的多,因为生态环境在哪里摆着。 Mycat

MySQL重要知识点/面试题总结

≯℡__Kan透↙ 提交于 2019-11-28 20:05:37
这篇文章是作者利用几天时间对MySQL知识点总结完善后的产物,可以用来回顾MySQL基础知识以及备战MySQL常见面试问题。 什么是MySQL? MySQL 是一种关系型数据库,在Java企业级开发中非常常用,因为 MySQL 是开源免费的,并且方便扩展。阿里巴巴数据库系统也大量用到了 MySQL,因此它的稳定性是有保障的。MySQL是开放源代码的,因此任何人都可以在 GPL(General Public License) 的许可下下载并根据个性化的需要对其进行修改。MySQL的默认端口号是3306。 事务相关 什么是事务? 事务是逻辑上的一组操作,要么都执行,要么都不执行。 事务最经典也经常被拿出来说例子就是转账了。假如小明要给小红转账1000元,这个转账会涉及到两个关键操作就是:将小明的余额减少1000元,将小红的余额增加1000元。万一在这两个操作之间突然出现错误比如银行系统崩溃,导致小明余额减少而小红的余额没有增加,这样就不对了。事务就是保证这两个关键操作要么都成功,要么都要失败。 事物的四大特性(ACID)介绍一下? 原子性 : 事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用; 一致性 : 执行事务前后,数据保持一致,多个事务对同一个数据读取的结果是相同的; 隔离性 : 并发访问数据库时,一个用户的事务不被其他事务所干扰

重新学习Mysql数据库2:『浅入浅出』MySQL 和 InnoDB

☆樱花仙子☆ 提交于 2019-11-28 10:34:29
作为一名开发人员,在日常的工作中会难以避免地接触到数据库,无论是基于文件的 sqlite 还是工程上使用非常广泛的 MySQL、PostgreSQL,但是一直以来也没有对数据库有一个非常清晰并且成体系的认知,所以最近两个月的时间看了几本数据库相关的书籍并且阅读了 MySQL 的官方文档,希望对各位了解数据库的、不了解数据库的有所帮助。 ![](https://img2018.cnblogs.com/blog/1092007/201908/1092007-20190824162501679-1707813820.png) 添加描述 本文中对于数据库的介绍以及研究都是在 MySQL 上进行的,如果涉及到了其他数据库的内容或者实现会在文中单独指出。 数据库的定义 很多开发者在最开始时其实都对数据库有一个比较模糊的认识,觉得数据库就是一堆数据的集合,但是实际却比这复杂的多,数据库领域中有两个词非常容易混淆,也就是数据库和实例: 数据库:物理操作文件系统或其他形式文件类型的集合; 实例:MySQL 数据库由后台线程以及一个共享内存区组成; 对于数据库和实例的定义都来自于 MySQL 技术内幕:InnoDB 存储引擎 一书,想要了解 InnoDB 存储引擎的读者可以阅读这本书籍。 数据库和实例 在 MySQL 中,实例和数据库往往都是一一对应的,而我们也无法直接操作数据库

MySQL读写分离

↘锁芯ラ 提交于 2019-11-28 07:55:39
Mysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过。但在实际的生产环境中,由单台Mysql作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方面。 因此,一般来说都是通过 主从复制(Master-Slave)的方式来同步数据,再通过读写分离(MySQL-Proxy)来提升数据库的并发负载能力 这样的方案来进行部署与实施的。 读写分离应用: mysql-proxy:Oracle,https://downloads.mysql.com/archives/proxy/ Atlas:Qihoo,https://github.com/Qihoo360/Atlas/blob/master/README_ZH.md dbproxy:美团,https://github.com/Meituan-Dianping/DBProxy Cetus:网易乐得,https://github.com/Lede-Inc/cetus Amoeba:https://sourceforge.net/projects/amoeba/ Cobar:阿里巴巴,Amoeba的升级版 Mycat:基于Cobar, http://www.mycat.io/ ProxySQL:https://proxysql.com/ ProxySQL ProxySQL:

面试题总结:可能是全网最好的MySQL重要知识点

为君一笑 提交于 2019-11-28 03:17:20
标题有点标题党的意思,但希望你在看了文章之后不会有这个想法——这篇文章是作者对之前总结的 MySQL 知识点做了完善后的产物,可以用来回顾MySQL基础知识以及 备战MySQL常见面试问题 。 什么是MySQL? MySQL 是一种关系型数据库,在Java企业级开发中非常常用,因为 MySQL 是开源免费的,并且方便扩展。阿里巴巴数据库系统也大量用到了 MySQL,因此它的稳定性是有保障的。MySQL是开放源代码的,因此任何人都可以在 GPL(General Public License) 的许可下下载并根据个性化的需要对其进行修改。MySQL的默认端口号是 3306 。 事务相关 什么是事务? 事务是逻辑上的一组操作,要么都执行,要么都不执行。 事务最经典也经常被拿出来说例子就是转账了。假如小明要给小红转账1000元,这个转账会涉及到两个关键操作就是:将小明的余额减少1000元,将小红的余额增加1000元。万一在这两个操作之间突然出现错误比如银行系统崩溃,导致小明余额减少而小红的余额没有增加,这样就不对了。事务就是保证这两个关键操作要么都成功,要么都要失败。 事物的四大特性(ACID)介绍一下? 原子性: 事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用; 一致性: 执行事务前后,数据保持一致,多个事务对同一个数据读取的结果是相同的; 隔离性:

数据库中间件MyCat

我的梦境 提交于 2019-11-28 00:54:03
什么是MyCat? 查看官网的介绍是这样说的 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务、ACID、可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群 一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品 一个新颖的数据库中间件产品 主要特性 : 支持SQL92标准 支持MySQL、Oracle、DB2、SQL Server、PostgreSQL等DB的常见SQL语法 遵守Mysql原生协议,跨语言,跨平台,跨数据库的通用中间件代理。 基于心跳的自动故障切换,支持读写分离,支持MySQL主从,以及galera cluster集群。 支持Galera for MySQL集群,Percona Cluster或者MariaDB cluster 基于Nio实现,有效管理线程,解决高并发问题。 支持数据的多片自动路由与聚合,支持sum,count,max等常用的聚合函数,支持跨库分页。 支持单库内部任意join,支持跨库2表join,甚至基于caltlet的多表join。 支持通过全局表,ER关系的分片策略,实现了高效的多表join查询。 支持多租户方案。 支持分布式事务(弱xa)。 支持XA分布式事务(1.6.5)。 支持全局序列号