cobar

mysql中间件汇总

假如想象 提交于 2019-12-16 08:15:37
一、写在前面 mysql作为互联网公司都会用到的数据库,在使用过程中。会用主从复制来提高性能。会用分库分表解决写入问题。以下介绍mysql中间件的一些实现方案 二、Atlas Atlas时 360 公司开发维护的一个基于MySQL协议的数据中间层项目。 2.1 atlas架构 Atlas是一个位于应用程序与MySQL之间中间件。在后端DB看来,Atlas相当于连接它的客户端,在前端应用看来,Atlas相当于一个DB。Atlas作为服务端与应用程序通讯,它实现了MySQL的客户端和服务端协议,同时作为客户端与MySQL通讯。它对应用程序屏蔽了DB的细节,同时为了降低MySQL负担,它还维护了连接池。 2.3 主要功能 1.读写分离 2.从库负载均衡 3.IP过滤 4.自动分表 5.DBA可平滑上下线DB 6.自动摘除宕机的DB 三、Mysql router MySQL Router是mysql官方发布的数据库中间件,是处于应用client和dbserver之间的轻量级代理程序,它能检测,分析和转发查询到后端数据库实例,并把结果返回给client。是mysql-proxy的一个替代品 3.1 mysql router架构 1.Router实现读写分离,程序不是直接连接数据库IP,而是固定连接到mysql router。MySQL Router对前端应用是透明的。 应用程序把MySQL

大型网站技术架构:核心原理与案例分析-李智慧

两盒软妹~` 提交于 2019-12-13 15:09:31
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 大型网站架构演化 大型网站软件系统的特点 高并发,大流量 高可用 海量数据 用户分布广泛,网络情况复杂 安全环境恶劣 需求快速变更,发布频繁 渐进式发展 大型网站架构模式 网站架构模式 分层(横向) 在大型网站架构中采用分层结构,将网站软件系统分为应用层、服务层、数据层 分割(纵向) 网站常用的分布式方案 分布式应用和服务 分布式静态资源 分布式数据和存储 分布式计算 异步 冗余 服务器冗余运行,数据冗余备份。大型网站对整个数据中心进行备份,在全球范围内部署灾备数据中心。 自动化 安全 大型网站核心架构要素 性能 可用性 伸缩性 扩展性 安全性 瞬时响应:网站的高性能架构 网站性能测试 性能测试标准 性能测试方法 性能测试 负载测试 压力测试 稳定性测试 性能测试报告 性能优化策略 性能分析 检查请求处理的各个环节的日志,分析哪个环节响应时间不合理、超过预期;然后检查监控数据,分析影响性能的主要因素是内存、磁盘、网络还是CPU,是代码问题还是架构设计不合理,或者系统资源确实不足 性能优化 web前端性能优化 减少http请求 使用浏览器缓存 启用压缩 对于html、css、javascript文件启用GZip压缩,但压缩会对服务器和浏览器产生一定的压力,在通信带宽良好,而服务器资源不足的情况下要权衡考虑

MyCat:取代Cobar数据库中间件

£可爱£侵袭症+ 提交于 2019-12-10 15:46:40
Cobar 是阿里巴巴开源的一个数据库中间件,为了解决类似proxy这类的问题。目前同类型的有奇虎360开源的Atlas。类似的有基本在线上用起来很不爽,问题多多的比如MySQL Proxy和SQL Relay,基本可以忽略。 Cobar 下载: https://github.com/alibaba/cobar Atlas 下载: https://github.com/Qihoo360/Atlas =============================================================== MyCat:取代Cobar数据库中间件 什么是MyCAT?简单的说,MyCAT就是: 一个彻底开源的,面向企业应用开发的“大数据库集群” 支持事务、ACID、可以替代Mysql的加强版数据库 ? 一个可以视为“Mysql”集群的企业级数据库,用来替代昂贵的Oracle集群 ? 一个融合内存缓存技术、Nosql技术、HDFS大数据的新型SQL Server ? 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品 ? 一个新颖的数据库中间件产品。 目标 低成本的将现有的单机数据库和应用平滑迁移到“云”端,解决数据存储和业务规模迅速增长情况下的数据瓶颈问题。 关键特性 支持 SQL 92标准 支持Mysql集群,可以作为Proxy使用

Mysql-cobar集群安装部署手册

送分小仙女□ 提交于 2019-12-10 15:33:09
本文档以 mysql5.6.17-1 rhel 版本为例,介绍 mysql 一机多实例,以两台机器各两个实例,实现机器间的 mysql 实例主主复制功能。并将 4 个 mysql 实例纳入到 cobar 集群,实现 mysql 的分布式部署。部署结构图如下: 一. Mysql RPM 包多实例安装以及双主复制配置 1. 检测是否有历史版本存在,命令为: rpm –qa|grep –iE mysql ; 2. 卸载历史版本,命令为: rpm -e –nodeps 包名。包名为步骤一中所查询的结果; 3. 删除历史版本的文件和库,查找命令为: find / -name mysql ,然后利用 rm –rf “ 路径 ” 来删除; 4. 删除配置文件, my.cnf 一般存在于 /etc/my.conf 下面或者 /usr/bin 下面,需要手动删除。 5. Mysql RPM 包 5.6 以后会自动建立 mysql 用户组与用户,安装前可以卸载到原有的 mysql 用户,命令: userdel –rf mysql ; 6. Mysql 基本功能仅需要安装 MySQL-server-community.*.rpm 和 MySQL-client-community.*.rpm ,以 root 用户登录后, 执行 rpm –ivh “MySQL-*.rmp” 完成 mysql

存储-海量数据-(持续数据的增长和高并发解决方案)

你离开我真会死。 提交于 2019-12-04 00:20:05
目标 Ø 掌握数据库的大数据处理方案和HA Ø 掌握为什么需要数据库中间件,何为数据库中间件 Ø 掌握不同场景所需的数据库中间件特性 Ø 掌握数据库中间件设计要点 海量数据分片之分库分表 大数据处理-回顾分区 应对大数据的处理,在分库分表之前,我们可以用分区,提升数据库的性能 大数据处理-分片理解 随着业务的发展,业务越来越复杂,应用的模块越来越多,总的数据量很大,高并发读写操作均超过单个 数据库服务器的处理能力怎么办? 数据分片指按照某个维度将存放在单一数据库中的数据分散地存放至多个数据库或表中 数据分片的有效手段是对关系型数据库进行分库和分表 分库又叫垂直拆分,或者纵向拆分,指的是按照业务模块将数据分散到不同的数据库服务器 就是把原本存储于一个库的表拆分存储到多个库上,通常是将表按照功能模块、关系密切程度划分出来, 部署到不同的库上。 如果数据库是因为表太多而造成海量数据,并且项目的各项业务逻辑划分清晰、低耦合,那么规则简单明 了、容易实施的首选就是分库。 大数据处理-分库图例 优点: Ø 拆分后业务清晰,拆分规则明确; Ø 系统之间整合或扩展容易; Ø 数据维护简单。 缺点: Ø 部分业务表无法join,只能通过接口方式解决,提高了系统复杂度; Ø 受每种业务不同的限制存在单库性能瓶颈,不易数据扩展跟性能提高; Ø 事务处理复杂。 大数据处理-分表理解

数据库(分库分表)中间件对比

非 Y 不嫁゛ 提交于 2019-12-03 15:22:28
数据库(分库分表)中间件对比 https://www.cnblogs.com/cangqiongbingchen/p/7094822.html 基本概念:分区,分片,分表,分库 分区:对业务透明,分区只不过把存放数据的文件分成了许多小块,例如mysql中的一张表对应三个文件.MYD,MYI,frm。 根据一定的规则把数据文件(MYD)和索引文件(MYI)进行了分割,分区后的表呢,还是一张表。分区可以把表分到不同的硬盘上,但不能分配到不同服务器上。 优点:数据不存在多个副本,不必进行数据复制,性能更高。 缺点:分区策略必须经过充分考虑,避免多个分区之间的数据存在关联关系,每个分区都是单点,如果某个分区宕机,就会影响到系统的使用。 分片:对业务透明,在物理实现上分成多个服务器,不同的分片在不同服务器上 个人感觉跟分库没啥区别,只是叫法不一样而已,值得一提的是关系型数据库和nosql数据库分片的概念以及处理方式是一样的吗? 请各位看官自行查找相关资料予以解答 分表:当数据量大到一定程度的时候,都会导致处理性能的不足,这个时候就没有办法了,只能进行分表处理。也就是把数据库当中数据根据按照分库原则分到多个数据表当中, 这样,就可以把大表变成多个小表,不同的分表中数据不重复,从而提高处理效率。 分表也有两种方案: 1. 同库分表:所有的分表都在一个数据库中,由于数据库中表名不能重复

【转帖】关于数据库中间件的思考

六眼飞鱼酱① 提交于 2019-12-03 15:16:50
作者:kimmking 链接:https://www.zhihu.com/question/352256403/answer/878523206 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 题主,恭喜你,你深入思考了一系列重要问题,作为一个开源技术人员+数据中间件的爱好者,试着回答一下题主的几个问题: 什么时候需要数据中间件,中间件能干什么 数据中间件的实现原理,有哪些开源数据中间件 为什么都是国内开源的,并且大都停止了更新 推荐使用什么数据中间件,有什么优势 一、什么时候需要数据中间件,中间件能干什么 就像题主说的那样,随着业务的发展,MySQL、Oracle数据库里的表越来越大,一两年以后,2千万、甚至上亿记录的表就会出现了(一般可以简单认为表比较复杂的时候,MySQL几百万上千万的时候,Oracle几千万的时候,就会出现复杂查询或变更有性能问题),这时候可能会导致复杂的查询慢,插入和修改数据慢,修改表的DDL执行太慢导致无法修改列类型或者加索引或者加字段等等。怎么办呢?这时候我们可以由几个处理办法: 历史表:按时间拆分历史表出去,降低数据量,这个以前比较常见,其实也是一种特殊的水平拆分,对业务有侵入性 垂直拆分:按列,将上百列的宽表拆分成多个列少(也就是每条记录数据量小)的表,不降低记录数,但是降低整个表的数据量和索引量大小 水平拆分

为什么要分库分表

为君一笑 提交于 2019-12-03 10:54:33
为什么要分库分表?(设计高并发系统的时候,数据库层面该如何设计?) 说白了,分库分表是两回事儿,大家可别搞混了,可能是光分库不分表,也可能是光分表不分库,都有可能。 我先给大家抛出来一个场景。 假如我们现在是一个小创业公司(或者是一个 BAT 公司刚兴起的一个新部门),现在注册用户就 20 万,每天活跃用户就 1 万,每天单表数据量就 1000,然后高峰期每秒钟并发请求最多就 10。天,就这种系统,随便找一个有几年工作经验的,然后带几个刚培训出来的,随便干干都可以。 结果没想到我们运气居然这么好,碰上个 CEO 带着我们走上了康庄大道,业务发展迅猛,过了几个月,注册用户数达到了 2000 万!每天活跃用户数 100 万!每天单表数据量 10 万条!高峰期每秒最大请求达到 1000!同时公司还顺带着融资了两轮,进账了几个亿人民币啊!公司估值达到了惊人的几亿美金!这是小独角兽的节奏! 好吧,没事,现在大家感觉压力已经有点大了,为啥呢?因为每天多 10 万条数据,一个月就多 300 万条数据,现在咱们单表已经几百万数据了,马上就破千万了。但是勉强还能撑着。高峰期请求现在是 1000,咱们线上部署了几台机器,负载均衡搞了一下,数据库撑 1000QPS 也还凑合。但是大家现在开始感觉有点担心了,接下来咋整呢...... 再接下来几个月,我的天,CEO 太牛逼了,公司用户数已经达到 1 亿

mysql中间件研究(Atlas,cobar,TDDL)

孤街醉人 提交于 2019-12-01 16:17:27
mysql-proxy是官方提供的mysql中间件产品可以实现负载平衡,读写分离,failover等,但其不支持大数据量的分库分表且性能较差。下面介绍几款能代替其的mysql开源中间件产品,Atlas,cobar,tddl,让我们看看它们各自有些什么优点和新特性吧。 Atlas Atlas是由 Qihoo 360, Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。它是在mysql-proxy 0.8.2版本的基础上,对其进行了优化,增加了一些新的功能特性。360内部使用Atlas运行的mysql业务,每天承载的读写请求数达几十亿条。 Altas架构: Atlas是一个位于应用程序与MySQL之间,它实现了MySQL的客户端与服务端协议,作为服务端与应用程序通讯,同时作为客户端与MySQL通讯。它对应用程序屏蔽了DB的细节,同时为了降低MySQL负担,它还维护了连接池。 以下是一个可以参考的整体架构,LVS前端做负载均衡,两个Altas做HA,防止单点故障。 Altas的一些新特性: 1.主库宕机不影响读 主库宕机,Atlas自动将宕机的主库摘除,写操作会失败,读操作不受影响。从库宕机,Atlas自动将宕机的从库摘除,对应用没有影响。在mysql官方的proxy中主库宕机,从库亦不可用。 2.通过管理接口,简化管理工作,DB的上下线对应用完全透明

mysql中间件研究(Atlas,cobar,TDDL)【转】

﹥>﹥吖頭↗ 提交于 2019-12-01 16:17:08
mysql-proxy是官方提供的mysql中间件产品可以实现负载平衡,读写分离,failover等,但其不支持大数据量的分库分表且性能较差。下面介绍几款能代替其的mysql开源中间件产品,Atlas,cobar,tddl,让我们看看它们各自有些什么优点和新特性吧。 Atlas Atlas是由 Qihoo 360, Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。它是在mysql-proxy 0.8.2版本的基础上,对其进行了优化,增加了一些新的功能特性。360内部使用Atlas运行的mysql业务,每天承载的读写请求数达几十亿条。 Altas架构: Atlas是一个位于应用程序与MySQL之间,它实现了MySQL的客户端与服务端协议,作为服务端与应用程序通讯,同时作为客户端与MySQL通讯。它对应用程序屏蔽了DB的细节,同时为了降低MySQL负担,它还维护了连接池。 以下是一个可以参考的整体架构,LVS前端做负载均衡,两个Altas做HA,防止单点故障。 Altas的一些新特性: 1.主库宕机不影响读 主库宕机,Atlas自动将宕机的主库摘除,写操作会失败,读操作不受影响。从库宕机,Atlas自动将宕机的从库摘除,对应用没有影响。在mysql官方的proxy中主库宕机,从库亦不可用。 2.通过管理接口,简化管理工作,DB的上下线对应用完全透明