mysql中间件

万字分享,我是如何一步一步监控公司MySQL的?

岁酱吖の 提交于 2020-02-20 13:23:23
整理了一些Java方面的架构、面试资料(微服务、集群、分布式、中间件等),有需要的小伙伴可以关注公众号【程序员内点事】,无套路自行领取 更多优选 一口气说出 9种 分布式ID生成方式,面试官有点懵了 3万字总结,Mysql优化之精髓 为了不复制粘贴,我被逼着学会了JAVA爬虫 技术部突然宣布:JAVA开发人员全部要会接口自动化测试框架 Redis 5种数据结构及对应使用场景,全会面试要加分的 写在前边 在家远程办公第三周,快被手机上的消息搞的有些神经质了,生怕错过一条有用的信息,没办法形势如此,公司摇摇欲坠大家也都如履薄冰,毕竟这时候失业有点惨( 穷怕了 )。 但就干活来说还是比较清闲的,和在公司上班相比,清闲下来很多碎片时间,可以随意的做点自己喜欢的事情。而且我发现, 人一但闲下来真的是好可怕 ,潜在的才能会全面爆发,我女朋友这个抖音深度患者,一年不做一回饭的主,一周内接连给我做了两顿黑暗料理,烤馒头版“蛋糕”、浆糊版“凉皮”,然后我就与厕所结下来不解之缘。。。 不过,作为一个程序员,我对黑暗料理是不太感兴趣滴,闲下来还是喜欢学习钻研一些新奇的技术, canal 就成了很好的研究对象,一不小心就监控了公司MySQL的一举一动的 一、canal是个啥? canal 是阿里开发的一款基于数据库增量日志解析,提供增量数据订阅与消费的框架,整个框架纯 JAVA 开发,目前仅支持

Linux实战教学笔记40: Mha-Atlas-MySQL高可用方案实践(二)

你说的曾经没有我的故事 提交于 2020-02-18 07:11:06
六,配置VIP漂移 主机名 IP地址(NAT) 漂移VIP 描述 mysql-db01 eth0:192.168.0.51 VIP:192.168.0.60 系统:CentOS6.5(6.x都可以) 安装:mysql5.6 mysql-db02 eth0:192.168.0.52 VIP:192.168.0.60 系统:CentOS6.5(6.x都可以) 安装:mysql5.6 mysql-db03 eth0:192.168.0.53 VIP:192.168.0.60 系统:CentOS6.5(6.x都可以) 安装:mysql5.6 6.1 IP漂移的两种方式 通过keepalived的方式,管理虚拟IP的漂移 通过MHA自带脚本方式,管理虚拟IP的漂移 6.2 MHA脚本管理方式 (1)获取管理脚本master_ip_failover 提示:yum安装的manager是没有这个脚本的。 我们需要从manager的源码包里复制一个。 [root@mysql-db03 ~]# ll mha4mysql-manager-0.56.tar.gz -rw-r--r--. 1 root root 113914 Sep 4 18:43 mha4mysql-manager-0.56.tar.gz [root@mysql-db03 ~]# tar xf mha4mysql-manager-0.56

面试官系列,深入数据库分区分库分表

做~自己de王妃 提交于 2020-02-15 17:53:53
一、为什么要分库分表 软件时代,传统应用都有这样一个特点:访问量、数据量都比较小,单库单表都完全可以支撑整个业务。随着互联网的发展和用户规模的迅速扩大,对系统的要求也越来越高。因此传统的MySQL单库单表架构的性能问题就暴露出来了。而有下面几个因素会影响数据库性能: 数据量 MySQL单库数据量在5000万以内性能比较好,超过阈值后性能会随着数据量的增大而变弱。MySQL单表的数据量是500w-1000w之间性能比较好,超过1000w性能也会下降。 磁盘 因为单个服务的磁盘空间是有限制的,如果并发压力下,所有的请求都访问同一个节点,肯定会对磁盘IO造成非常大的影响。 数据库连接 数据库连接是非常稀少的资源,如果一个库里既有用户、商品、订单相关的数据,当海量用户同时操作时,数据库连接就很可能成为瓶颈。 为了提升性能,所以我们必须要解决上述几个问题,那就有必要引进分库分表,当然除了分库分表,还有别的解决方案,就是NoSQL和NewSQL,NoSQL主要是MongoDB等,NewSQL则以TiDB为代表。 二、分区分库分表的原理 1、什么是分区、分表、分库 (1)分区 就是把一张表的数据分成N个区块,在逻辑上看最终只是一张表,但底层是由N个物理区块组成的,分区实现比较简单,数据库mysql、oracle等很容易就可支持。 (2)分表

知乎上看的文章

為{幸葍}努か 提交于 2020-02-12 22:15:35
作者:暗灭 链接:https://www.zhihu.com/question/26669731/answer/466936797 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 想了想,还是先画一系列的图,再来解释一下什么是WEB开发. 第一层 入门介绍图 适合:刚入门互联网,没多少基础知识和专业知识. 为嘛这个图上传的不清楚?算了.我也不知道 对于大多数刚刚接触到互联网这个职业的人来说,对于软件是怎么编写的,大概的职业是怎么划分的,理解到这个程度就够了. 整个系统架构可以分成三层(分层是码农必备思维). 第一层,叫展示层,又被称之为前端.展示层这个名字,其实有点不精确,确切的来说,应该叫用户层,或者是输入输出层,或者叫用户交互层. 它的目标很简单,就是接受用户的输入,并将结果反馈给用户. 什么叫做输入呢?键盘,鼠标,声音,图像等等都是输入,最简单的输入就是键盘和鼠标,你们如果看过各种黑客电影,不管是在键盘上啪啪啪,还是在空气中点点点,都是输入. 输出就是展示出来的结果,在屏幕上就是文字动画,在音箱就是声音之类的. 叫展示层的原因,是因为大部分的情况下,都是用户只需要看,少部分才是操作. 所以通常是用展示层来代指用户的输入输出层. 为什么要分层? 其实最早在互联网没有出现之前,分层是一个相对而言,软件设计里的概念.但是在现在,就很简单了

高级篇:Mycat的理解

…衆ロ難τιáo~ 提交于 2020-02-11 17:15:36
目录 一、问题导入 1.1高并发Mysql的速度问题怎么解决? 1.2Mysql 挂了怎么办? 1.3 Mysql 超过500W的数据 二、Mycat 的简介 2.1 Mycat 解决Mysql 的并发压力的思路 2.1.1 分库 2.1.2 分表 2.1.3 好处或者面试 2.1.4 Mycat 额外的好处 2.2 Mycat的安装 2.2.1 Mycat 是Java 语言写的,安装Mycat 必须先安装JDK 2.2.2 Mycat的安装 三、Mycat的名词解释 3.1 虚拟库 3.2 虚拟表 3.3 数据节点(**) 3.4 数据库服务器 四、Mycat的配置文件(*mycat的核心*) 4.1 schema.xml 4.1.1 schema (一个虚拟的库)节点 4.1.2 table 标签 4.1.3 dataNode数据节点 4.1.4 DataHost:数据库的服务器 4.2 rule.xml(路由的规则) 4.2.1 tableRule的节点 4.2.2 function 节点 4.3 server.xml 4.3.1 用户的配置 4.3.2 主键增长的节点 五、实战mycat的配置文件 5.1 写一个schema.xml 文件 5.2 rule.xml 文件(我们没有使用别的规则,它里面自动rule1) 5.3 server.xml 5.4 覆盖默认的mycat

ProxySQL 基础篇

左心房为你撑大大i 提交于 2020-02-10 16:09:03
1、ProxySQL 介绍 ProxySQL 是基于 MySQL 的一款开源的中间件的产品,是一个灵活的 MySQL 代理层, 可以实现 读写分离,支持 Query 路由功能,支持动态指定某个 SQL 进行缓存,支持动态加载(无需重启 ProxySQL 服务),故障切换和一些 SQL 的过滤功能。 介绍:相关 ProxySQL 的网站 https://www.proxysql.com/ https://github.com/sysown/proxysql/wiki    2、环境准备 全新初始化的实例 IP server-id 数据库版本 备注 10.0.0.160 1603306 MySQL 8.0.18 Master(主库)+ ProxySQL2.0.8 10.0.0.161 1613306 MySQL 8.0.18 Slave1(从库) 10.0.0.162 1623306 MySQL 8.0.18 Slave2(从库) ProxySQL 2.0.x 版本支持 MGR 注: 我的 ProxySQL 和 主库放在一起的,我已近配置好了主从复制状态 。这是我的实验环境,实际环境注意实际情况。一般的代理环境结构如上图。 slave 节点的read_only=1 3、ProxySQL 安装与启动 下载 wget https://github.com/sysown/proxysql

MySQL数据库集群实战(5)———MySQL数据库的读写分离(MySQL-proxy)

纵然是瞬间 提交于 2020-02-07 23:33:09
实现MySQL读写分离的前提是我们已经将MySQL主从复制配置完毕,可参考上一篇关于 MySQL数据库集群实战(2)——MySQL主从复制之异步复制(传统复制postion与GTID) 的文章。配置基于GTID的异步复制。 文章目录 一、MySQL读写分离 1、为什么要进行读写分离 2、读写分离的实现原理 3、mysql中间件服务mysql-proxy 二、搭建MySQL数据库的读写分离 实验环境 实验 测试读写分离 一、MySQL读写分离 1、为什么要进行读写分离 当我们的数据量很大时,数据库服务器的压力变大,这时候我们需要从架构方面来解决这一问题,在一个网站中读的操作很多,写的操作很少,这时候我们需要配置读写分离,把读操作和写操作分离出来,最大程度的利用好数据库服务器。 2、读写分离的实现原理 读写分离的实现原理就是在执行SQL语句的时候,判断到底是读操作还是写操作,把读的操作转向到读服务器上(从服务器,一般是多台),写的操作转到写的服务器上(主服务器,一般是一台,视数据量来看)。 3、mysql中间件服务mysql-proxy mysql-proxy是mysql官方提供的mysql中间件服务,上游可接入若干个mysql-client,后端可连接若干个mysql-server。 它使用mysql协议,任何使用mysql-client的上游无需修改任何代码,即可迁移至mysql

你真的知道如何设置数据库连接池的大小吗

本小妞迷上赌 提交于 2020-02-05 09:02:24
前段时间在一个老项目中经历过一个问题:一个 Dubbo 服务,启动的时候慢的要死,后来看日志查原因整个过程一直在初始化 数据库 连接。一看数据库连接参数,连接池大小:1024。 很多入行晚的同学没有经历过手写 JDBC 连接的日子。那个时候没有数据库连接池的概念,都是原生代码一顿搞,后来有了 iBATIS 之后 Java 开发的繁杂程度才逐渐减轻,也衍生 C3P0 数据库连接池这种基础的东西。罗马不是一天建成的,可是互联网发展太快了,技术压力逼迫下各种中间件被迫研发,大家加班加点搞出来各种高大上的脚手架,也成就很多 伟人 。 数据库连接使用 TCP 的方式,建立连接需要3次握手,释放连接需要4次挥手,当今这种互联网使用频率下,如果每一次访问数据库都重新建立连接,我估计你们公司倒闭800次都不够。 1. 数据库连接的过程是怎样的 Java 鼻祖 Sun 公司是想以一套API统一天下,奈何各个数据库服务器厂商太给力统一不了。无奈之举是创建了一个统一的接口,提出一套统一接入的步骤,各个厂商实现接口,按照步骤加载自己的数据库。所以现在的方案就是4板斧: 注册驱动,为人所知的: Class.forName() ; 获取Connection,成功即与数据库建立连接; 拿到Statement对象,用于操作数据库的CRUD; 获取数据库返回结果ResultSet。

Mycat(Windows环境)

二次信任 提交于 2020-02-04 14:46:38
Mycat 是SQL集群中间件,基于阿里开源的Cobar产品而研发,继承了Cobar的稳定性、可靠性、优秀的架构和性能 首先在安装Mycat之前,需要安装JDK1.7以上,可以在cmd环境下输入 java -version 查看本地安装的java版本 安装JDK后,还需要安装Mysql(因为我本地环境安装的是Mysql,所以用Mysql做测试) 1. 下载Mycat 链接: https://pan.baidu.com/s/1L9TK3Vo2PTxS2WKdvjL4CQ 提取码: rrrp 2. 解压 下载成功后,解压到本地,目录结构如下: 3.配置 server.xml Mycat的配置文件,设置账号、参数等 schema.xml Mycat对应的物理数据库和数据库表的配置 rule.xml Mycat分片(分库分表)规则 .server.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mycat:server SYSTEM "server.dtd"> <mycat:server xmlns:mycat="http://io.mycat/"> <system> <property name="defaultSqlParser">druidparser</property> <property name=

听说你在学习 MySQL,送你一份 MySQL 必备资源汇总

狂风中的少年 提交于 2020-01-31 09:04:35
文章目录 MySQL 网站 在线教程 经典书籍 分支版本 管理与开发工具 备份与恢复工具 基准测试工具 高可用与高性能 应用程序驱动 部署工具 为了方便大家学习 MySQL,整理了一些常用的 MySQL 资源。如果你发现了其他好用的资源,欢迎推荐! MySQL 网站 MySQL 官方网站 - MySQL 官方网站。 MySQL Wiki - MySQL 社区知识共享,包含 MySQL 用户组、MySQL FAQs、MySQL 事件和会议信息。 MySQL 社区版 - 提供 MySQL 社区版下载,支持各种平台,包括 Linux、Windows 以及 macOS。 MySQL Server Blog - MySQL Server 开发团队发布的最新消息。 MySQL 参考手册 - MySQL 官方文档,英文版。 awesome-mysql - GitHub 上一份关于 MySQL 的各种优秀软件、代码库以及资源列表。 在线教程 MySQL 教程 - W3Cschool 上的 MySQL 入门教程。 MySQL 教程 - 菜鸟教程上的 MySQL 教程。 www.mysqltutorial.org - MySQL 英文教程,适合初学者。 SQL Tutorial - W3Schools 上的 SQL 教程,英文版。 SQL Tutorial - SQLZoo 上的 SQL 教程