• Mycat入门


    初识Mycat

    是什么

    Mycat是数据库中间件

    1.数据库中间

    中间件:是一类连接软件组件和应用的计算机软件,便于软件各个之间的沟通。

    列如:Tomcat,web中间件

    数据库中间件:连接java应用程序和数据库。

    2.数据库中间件对比

    数据库中间件(天上飞的理念,地上落地的实现)

    数据库中间件出自
    Cobar 阿里团队开发,已多年无维护更新
    Mycat 基于Cobar二次开发 开源社区维护
    OneProxy 不开源的商业中间件
    Kingshard go语言开发,在不断完善
    Vitess Youtube生产在使用,不支持Mysql原生协议
    Atlas 360团队基于mysqlproxy改写,高并发下不稳定
    MaxScale maxScale是mariadb研发的中间件
    MysqlRoute mysqlRoute是MySQL官方Oracle公司发布的中间件

    Mycat的历史

    Mycat前身是阿里的Cobar.

    Cobar是由Alibaba开源的 Mycat 分布式处理中间件,它可以在分布式的环境想看上去像传统的数据库一样提供海量数据服务。

    Mycat官网

    http://www.mycat.io/

     

    干什么的

    读写分离、数据分片、主从切换

     

    原理

    Mycat的原理中最重要的一个动词是“拦截”,它拦截了用户发送过来的sql语句,首先对SQL语句做了一定的分析:如分片分析,路由分析,读写分离分析,缓存分析等。然后将SQL发往后端的真实数据库,并将返回的结果做适当处理,最终返回给用户.

     

     

    安装Mycat

    docker安装

    这里我是拉取别人已经做好的镜像(也可以自己制作镜像):

    拉取镜像:

    docker pull fify/mycat
    

     创建挂载目录

    mkdir /cjh_docker/mycat/conf
    

     运行容器

    docker run -it --name mycat fify/mycat  /bin/bash
    

     复制 server.xml、schema.xml 、rule.xml到宿主机 

    docker cp mycat:/usr/local/mycat/conf/schema.xml /cjh_docker/mycat/conf/
    docker cp mycat:/usr/local/mycat/conf/server.xml /cjh_docker/mycat/conf/
    docker cp mycat:/usr/local/mycat/conf/rule.xml /cjh_docker/mycat/conf/
    

     1)、schema.xml:定义逻辑库,表,分片节点等内容;

        2)、rule.xml:定义分片规则;

        3)、server.xml:定义用户以及系统相关变量;

    删除之前的容器

    将复制的文件挂载到容器:

    docker run --name mycat -p 8066:8066 -v /cjh_docker/mycat/conf/server.xml:/usr/local/mycat/conf/server.xml -v /cjh_docker/mycat/conf/schema.xml:/usr/local/mycat/conf/schema.xml -v
    /cjh_docker/mycat/conf/rule.xml:/usr/local/mycat/conf/rule.xml -v
    --privileged=true -d fify/mycat
    

     防火墙

    firewall-cmd --zone=public --add-port=8066/tcp --permanent
    firewall-cmd --reload
    firewall-cmd --list-ports
    

     有个默认账户: 用户名 root 密码 123456 逻辑库 TESTDB

    我们可以通过可视化工具连接mycat。 我们开发者,可以把mycat就当做数据库用即可,虽然它是真实数据库的代理;

    这里逻辑库的概念,对应用来说,相当于Mysql这类的真实数据库,是真实数据库的代理; 逻辑库可以对应后端多个物理数据库,逻辑库中并不保存数据;

     

  • 相关阅读:
    对象中属性 加锁 用:volatile 关键词修饰 而 不用 synchronized 加锁
    利用URL重写实现参数目录化
    外部联接
    快速获取表的记录数
    SQL SEVER 元年是1900年
    SQL SERVER的浮点数类型及与C#的对应关系
    接口中包含抽象类demo
    接口的实际应用demo
    多态demo2
    抽象类的实际应用demo
  • 原文地址:https://www.cnblogs.com/chenjiahao9527/p/14171430.html
Copyright © 2020-2023  润新知