此文章源于浅谈MySQL集群高可用架构
对文章中的架构扩展介绍,之前写过一篇关于MHA的文章MySQL集群高可用架构之MHA

Mycat介绍

官网: http://mycat.io/
电子书: Mycat电子书

MyCAT采用Java开发,实现MySQL公开的二进制协议,将自己伪装成MySQL Server;应用只需连接MyCAT 执行SQL,MyCAT按照配置的策略,分发SQL至相应的MySQL节点。

什么是MYCAT

  • 一个彻底开源的,面向企业应用开发的大数据库集群
  • 支持事务、ACID、可以替代MySQL的加强版数据库
  • 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群
  • 一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server
  • 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品
  • 一个新颖的数据库中间件产品

Mycat整体架构图

Mycat特点介绍

  • 支持SQL92标准
  • 支持MySQL、Oracle、DB2、SQL Server、PostgreSQL等DB的常见SQL语法
  • 遵守Mysql原生协议,跨语言,跨平台,跨数据库的通用中间件代理。
  • 基于心跳的自动故障切换,读写分离,MySQL主从,以及galera cluster集群。
  • 支持Galera for MySQL集群,Percona Cluster或者MariaDB cluster
  • 基于Nio实现,有效管理线程,解决高并发问题。
  • 支持数据的多片自动路由与聚合,sum,count,max等常用的聚合函数,跨库分页。
  • 支持全局序列号,解决分布式下的主键生成问题。
  • 分片规则丰富,插件化开发,易于扩展。
  • 强大的web,命令行监控。
  • 支持前端作为MySQL通用代理,后端JDBC方式支持Oracle、DB2、SQL Server 、 mongodb 、巨杉。
  • 集群基于ZooKeeper管理,在线升级,扩容,智能优化,大数据处理(2.0开发版)。

MySQL主从同步

这个配置这里就不再赘述了,可参考前面的文章

Linux系统MySQL数据库主从同步实战过程

安装Mycat服务

生产环境最好单独使用服务器进行安装,测试环境安装在主库上

需要安装JAVA环境

[root@mysql-m ~]# java -versionjava version "1.8.0_144"Java(TM) SE Runtime Environment (build 1.8.0_144-b01)Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

安装Mycat服务

[root@mysql-m local]# wget http://dl.mycat.io/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz[root@mysql-m local]# tar zxf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz[root@mysql-m local]# cd mycat/[root@mysql-m mycat]# lltotal 24drwxr-xr-x 2 root root 4096 Sep 23 19:13 bindrwxrwxrwx 2 root root 4096 Mar  1  2016 catletdrwxrwxrwx 4 root root 4096 Sep 23 19:13 confdrwxr-xr-x 2 root root 4096 Sep 23 19:13 libdrwxrwxrwx 2 root root 4096 Oct 28  2016 logs-rwxrwxrwx 1 root root  217 Oct 28  2016 version.txt[root@mysql-m mycat]# cat >>/etc/profile<<EOF> export MYCAT_HOME=/usr/local/mycat> export PATH=$PATH:$MYCAT_HOME/bin> EOF[root@mysql-m mycat]# source /etc/profile

配置Mycat服务

以下四项取消注释,修改如下

<!--默认是65535 64K用于sql解析时最大文本长度-->

<property name="maxStringLiteralLength">65535</property><property name="sequnceHandlerType">0</property><property name="backSocketNoDelay">1</property><property name="frontSocketNoDelay">1</property><property name="processorExecutor">1</property>

配置schema.xml文件

主从服务器上配置读写的用户user并给以相应的权限

启动服务

登陆管理管理端口,查看是否有默认的逻辑数据库

查看数据读写入口

从上面可以看出数据写入与读取的入口在哪个库上

测试Mycat读写分离功能

接下来测试通过mycat来进行对主从数据库的读写操作

上面的数据是从逻辑数据库插入与查询的,接下来分别从主从库查看数据是否写入成功

再次查看数据源的入口情况

Mycat性能监控

MYCAT监控

  • 支持对Mycat、Mysql性能监控
  • 支持对Mycat的JVM内存提供监控服务
  • 支持对线程的监控
  • 支持对操作系统的CPU、内存、磁盘、网络的监控

下载WEB管理端软件

wget https://github.com/MyCATApache/Mycat-download/blob/master/mycat-web-1.0/Mycat-web-1.0-SNAPSHOT-20160617163048-linux.tar.gz

需要安装zookeeper

[root@mysql-m local]# wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz[root@mysql-m local]# tar zxf zookeeper-3.4.6.tar.gz[root@mysql-m local]# ln -s zookeeper-3.4.6 zookeeper[root@mysql-m conf]# cp zoo_sample.cfg zoo.cfg[root@mysql-m bin]# ./zkServer.sh startJMX enabled by defaultUsing config: /usr/local/zookeeper/bin/../conf/zoo.cfgStarting zookeeper ... STARTED[root@mysql-m ~]# lsof -i :2181COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEjava 3639 root 25u IPv6 19337 0t0 TCP *:eforward (LISTEN)

安装WEB管理端

[root@mysql-m bin]# cd /usr/local/[root@mysql-m local]# tar zxf Mycat-web-1.0-SNAPSHOT-20160617163048-linux.tar.gz[root@mysql-m local]# cd mycat-web/mycat-web/WEB-INF/classes/[root@mysql-m classes]# lltotal 28drwxr-xr-x 3 root root 4096 Jun 17  2016 com-rw-r--r-- 1 root root  367 Jun 17  2016 jdbc.properties-rw-r--r-- 1 root root 4068 Jun 17  2016 log4j2.xmldrwxr-xr-x 3 root root 4096 Jun 17  2016 mybatis-rw-r--r-- 1 root root  411 Jun 17  2016 mycat.propertiesdrwxr-xr-x 3 root root 4096 Jun 17  2016 orgdrwxr-xr-x 2 root root 4096 Sep 26 00:21 spring[root@mysql-m classes]# vim mycat.properties##Mon Jan 16 15:37:36 CST 2012show.period=3000000zookeeper=10.0.0.11:2181 [root@mysql-m mycat-web]# /usr/local/mycat-web/start.sh &[1] 3684[root@mysql-m mycat-web]# nohup: ignoring input and appending output to `nohup.out'[root@mysql-m mycat-web]# lsof -i :8082COMMAND  PID USER  FD  TYPE DEVICE SIZE/OFF NODE NAMEjava 3685 root 122u IPv6 20997 0t0 TCP *:us-cli (LISTEN)

今天的分享就到这了,如果你觉得文章还不错,对你有所帮助与借鉴,请点赞与转发分享支持一下,你的支持民工哥最大的动力!!


如有错误或其它问题,欢迎小伙伴留言评论、指正。如有帮助,欢迎点赞+转发分享。

更多相关开源技术文章,请持续关注民工哥知乎技术专栏。

我是民工哥,一个爱折腾的IT技术老司机,欢迎关注我,我们一起学习,共同成长!!

centos7上mycat安装_Mysql+Mycat实现数据库主从同步与读写分离相关推荐

  1. mysql读写分离错_MySQL主从同步、读写分离配置步骤、问题解决

    根据要求配置MySQL主从备份.读写分离,结合网上的文档,对搭建的步骤和出现的问题以及解决的过程做了如下笔记: 现在使用的两台服务器已经安装了MySQL,全是rpm包装的,能正常使用. 为了避免不必要 ...

  2. nginx+mycat实现负载均衡、数据库的主从复制、读写分离

    材料:XManager:七台CentOS(Linux)系统虚拟机(一台安装nginx,两台安装Tomcat+JDK,一台安装mycat,三台安装mysql数据库:一台master主节点,两台slave ...

  3. sqlserver date类型和字符串比较_基于SQL Server数据库搭建主从复制实现读写分离实战演练...

    一.课程介绍 读写分离(主从同步)从字面意思就可以理解,就是把对数据库的读操作和写操作分离开.读写分离在网站发展初期可以一定程度上缓解读写并发时产生锁的问题,将读写压力分担到多台服务器上.读写分离的基 ...

  4. 神通数据库ShenTong7在CentOS7上的安装与MySQL迁移遇到的兼容性问题

    背景 最近接触了个项目,数据库用的是国产数据库:神通数据库 ShenTong7 .简单总结下 ShenTong7 在 CentOS7 上的安装与使用.此外,在开发环境使用的是 MySQL 数据库,部署 ...

  5. MyCAT 介绍,MyCAT主要功能 ,MyCAT 安装,MyCAT 配置(使用可能遇到的另类问题,见文末)

    MyCAT 介绍,MyCAT主要功能 ,MyCAT 安装,MyCAT 配置(灵异问题,见文末) MyCAT介绍 Mycat是一个介于数据库与应用之间,进行数据处理与交互的中间服务! 通俗点讲,应用层可 ...

  6. mysql如何安装 centos7_如何解决centos7上mysql安装及问题

    本文主要向大家介绍了如何解决centos7上mysql安装及问题,通过具体的步骤向大家展现,希望对大家学习mysql有所帮助. 1 卸载centos7自带mariadb数据库 (1)列出所有被安装的r ...

  7. apache httpclient 工具类_HttpClient 和Mycat 主从节点和读写分离

    第175次(HttpClient) 学习主题:HttpClient 学习目标: 1 掌握HttpClient自定义工具以及HttpClient具体的使用 对应视频: http://www.itbaiz ...

  8. Linux下MySQL数据库主从同步配置

    操作系统:CentOS 6.x 64位 MySQL数据库版本:mysql-5.5.35 MySQL主服务器:192.168.21.128 MySQL从服务器:192.168.21.129 准备篇: 说 ...

  9. mysql数据库主从同步配置教程--数据库同步

    背景: 最近有一个mysql数据库同步的需求,我用了mysql主从同步的方法来实现.下面把步骤记录一下. 环境和拓扑 操作系统:Centos6.6 X64 mysql版本:5.1.73 Master: ...

  10. MySQL数据库主从同步的3种一致性方案实现,及优劣比较

    数据主从同步的由来 互联网的很多业务,特别是在高并发的场景下,基本都是读远远大于写,如果数据库读和写的压力都同在一台主机上,这显然不太合理. 于是,把一台数据库主机分为单独的一台写主库(主要负责写操作 ...

最新文章

  1. xxx系统可用性和易用性分析
  2. 满汉楼(德鲁伊连接池+DBUtils+DAO+Mysql)保姆级别分析+代码实现
  3. 【转】数据安全优秀思想
  4. jQuery操作示例
  5. ×××数据库导数据ora-01400错误小计
  6. XGBoost深度理解
  7. import和__import__()有什么不同?
  8. Chrome的两个工具
  9. 本学期关于Android学习的总结
  10. 太空探测器 java_宇宙究竟有多大?这个探测器或将告诉你答案
  11. 封校大学生在宿舍无聊玩起图像大找茬——一个关于游戏的练手小项目(一起领略Python脚本的风采吧)
  12. 建筑物防雷接地工程的分类和措施
  13. 企业微信h5配置微信sdk(openEnterpriseChat),拉起外部联系人私信聊天。
  14. 计算机毕业设计SSM电商直播订单管理系统【附源码数据库】
  15. 2020年南京大学软件工程考研上岸经验帖
  16. uniapp - 微信公众号授权登录
  17. adb冲突 傲软_关于adb冲突导致无法连接(Win10系统)
  18. EDA软件兼容性哪家强?
  19. 2017--就业分享之IT校招现状和面试经历
  20. ctp新浪股票接口需要注意的几个细节

热门文章

  1. C#程序之二 -- 数独小游戏(1. UI设计)
  2. 综合应用WPF/WCF/WF/LINQ之二十九:代码生成器之DBMLToCode
  3. 句柄的本质(整理-收藏) 选择自 feijj2002_ 的 Blog
  4. 『PyTorch x TensorFlow』第六弹_从最小二乘法看自动求导
  5. wordpress 增加备案号
  6. 自己动手开发编译器(八)用Linq编写解析器组合子
  7. ConnectionString 最简便写法 for MSSQL 2005 EXPRESS
  8. ati hd4570 linux amd 64 安装命令,ATI 显卡的驱动在Linux下的安装方法
  9. php loadclass,Laravel如何实现自动加载类
  10. Linux内核中Netfilter架构介绍