mycat读写分离方案一

mycat读写分离方案一1.什么是MYCAT 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务、ACID、可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群 …

mycat读写分离方案一

1.什么是MYCAT

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

2.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等常用的聚合函数,支持跨库分页。
支持单库内部任意join,支持跨库2表join,甚至基于caltlet的多表join。
支持通过全局表,ER关系的分片策略,实现了高效的多表join查询。
支持多租户方案。
支持分布式事务(弱xa)。
支持XA分布式事务(1.6.5)。
支持全局序列号,解决分布式下的主键生成问题。
分片规则丰富,插件化开发,易于扩展。
强大的web,命令行监控。
支持前端作为MySQL通用代理,后端JDBC方式支持Oracle、DB2、SQL Server 、 mongodb 、巨杉。
支持密码加密
支持服务降级
支持IP白名单
支持SQL黑名单、sql注入攻击拦截
支持prepare预编译指令(1.6)
支持非堆内存(Direct Memory)聚合计算(1.6)
支持PostgreSQL的native协议(1.6)
支持mysql和oracle存储过程,out参数、多结果集返回(1.6)
支持zookeeper协调主从切换、zk序列、配置zk化(1.6)
支持库内分表(1.6)
集群基于ZooKeeper管理,在线升级,扩容,智能优化,大数据处理(2.0开发版)。

官网地址 :http://www.mycat.io/

3.使用mycat实现读写分离

mysql主从复制可以看另外一篇文章 mysql主从复制

主从库,同步test库。

mycat读写分离方案一

 

 

下载
解压
tar zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
启动
/mycat/bin/
mycat start
/mycat/bin/
mycat stop

/mycat/bin/
mycat restart
/mycat/bin/
mycat status 查看启动状态
配置schema.xml和server.xml
schema.xml 配置数据库连接和分配

<schema name=”test” checkSQLschema=”false” dataNode=”testBode” > </schema>
    
  <dataNode name=”testBode” dataHost=”testHost” database=”test” />
    <!–1. writeType=”0″, 多有写操作发送到配置的第一个writehost,第一个挂了切到还生存的第二个writehost,重新启动后以切换后的为准,切换记录在配置文件中:dnindex.properties
    2. writeType=”1″,所有写操作都随机的发送到配置的wtirehost,1.5以后废弃不推荐。
    switchtype属性–>
    
    <!–balance=”0″, 不开启读写分离机制,所有读操作都发送到当前可用的writehost上。 
        balance=”1″,全部的readhost与standby wtirehost参与select语句的负载均衡,简单的说,当双主双从模式(M1->S1,M2->S2,并且M1与M2互为主备),正常情况下,M2,S1,S2 都参与select语句的负载均衡。 
        balance=”2″,所以读操作都随机的在writehost、readhost上分发。
        balance=”3″,所有读请求随机的分发到writehost对应的readhost执行,writehost不负担读压力,注意balance=3只有1.4及其以后版本有,1.3没有。–>
        
    <!–6.6.8  switchType 属性
        表示不自动切换
        默认值,自动切换
        基于mysql主从同步的状态决定是否切换–>
        
    <!–6.6.9  tempReadHostAvailable 属性
        如果配置了这个属性writehost下面的readhost仍旧可用,默认0可配置(0、1)。–>
        
    <dataHost name=”testHost” tempReadHostAvailable=”1″  maxCon=”1000″ minCon=”10″ balance=”3″ writeType=”0″ dbType=”mysql” dbDriver=”native” switchType=”1″  slaveThreshold=”100″>
          <heartbeat>show slave status</heartbeat> 
        <!– can have multi write hosts –>
        
        <writeHost  host=”hostW1″ url=”127.0.0.1:3307″ user=”root” password=”123456″>
            <!– can have multi read hosts –>
             <readHost host=”hostR1″ url=”127.0.0.1:3308″ user=”root” password=”123456″/>
        
        </writeHost>
            
        
    </dataHost>

 
 
server.xml 配置mycat 的服务器信息,如登陆账号密码,字集,监控情况
<user name=”test_write”><!–连接用的账号–>

        <property name=”password”>abcd12345678@</property><!–连接用的密码–>

        <property name=”schemas”>test</property><!–
schema.xml的schema name>

    </user>

 

/mycat/bin/mycat start

使用连接工具连接

mycat读写分离方案一

 

 

mycat中间库l连接打开

mycat读写分离方案一

主库的account表

mycat读写分离方案一

从库的account表

mycat读写分离方案一

mycat查询的数据

mycat读写分离方案一

mycat修改password数据

mycat读写分离方案一

主库更新

mycat读写分离方案一

从库也更新到了

mycat读写分离方案一

 

单独修改从库的password

mycat读写分离方案一

主库没有变化

mycat读写分离方案一

mycat查询只会一直查到从库的数据,证明读写已经分离

mycat读写分离方案一

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/9006.html

(0)
上一篇 2023-02-17
下一篇 2023-02-17

相关推荐

  • Modbus Poll学习记录「终于解决」

    Modbus Poll学习记录「终于解决」一、安装Modbus Poll 我使用的版本是:64位的9.2.2版本,如下图: 二、打开软件 界面如下(截图时我把最初系统默认打开的的那个实例关掉了): 三、新建实例 点击File-New,如下图…

    2023-03-30
    161
  • MongoDB服务无法启动

    MongoDB服务无法启动 MongoDB是一个开源的NoSQL数据库,它支持广泛的分布式数据存储。MongoDB的出色性能和可伸缩性,以及对丰富的查询语言和文档模型的支持,使得它成为最受欢迎的NoSQL数据库之一。

    2024-07-10
    47
  • Python工程师:import到底意味着什么?

    Python工程师:import到底意味着什么?Python是世界上最受欢迎的编程语言之一,这得益于它的简单易学性和强大的功能。而导入(import)是Python编程中最基本的操作之一,来自不同模块的代码可以在实现相同的功能的同时减少编写代码的工作量。

    2024-08-28
    32
  • [PL/SQL] CURRENT_SCHEMA 的另一种使用[通俗易懂]

    [PL/SQL] CURRENT_SCHEMA 的另一种使用[通俗易懂]我们要访问另外一个用户的表时,一般是 select * from schema.table_name 方式, 有时,觉得要在表名前加一个SCHEMA,比较繁琐,我们就会使用同义词的方式来处理 ,比如…

    2023-01-29
    144
  • Dev 日志 | 文章《快速体验知识图谱 OwnThink》中的技术问题

    Dev 日志 | 文章《快速体验知识图谱 OwnThink》中的技术问题社区小伙伴反馈在实践文章《使用图数据库 Nebula Graph 数据导入快速体验知识图谱 OwnThink》时,遇到了一些问题,Nebula Graph 将在本文对该文章中出现的问题进行 Debu…

    2022-12-24
    169
  • 使用Float或Real数据类型的危险

    使用Float或Real数据类型的危险SQL Prompt根据数据库的对象名称、语法和代码片段自动进行检索,为用户提供合适的代码选择。自动脚本设置使代码简单易读–当开发者不大熟悉脚本时尤其有用。SQL Prompt安装即可使用,能大幅…

    2023-02-20
    151
  • centos一键安装docker_centos5.5安装教程

    centos一键安装docker_centos5.5安装教程安装MySQL5.6 安装MySQL 1、下载安装包 下载地址https://dev.mysql.com/downloads/mysql/5.6.html 选择如下选项 下载64位版本 2、卸载系统…

    2023-01-24
    137
  • 基于内存的数据库有哪些_数据库内存

    基于内存的数据库有哪些_数据库内存背景 广告系统中,算法模型预估需要根据广告的实时转化统计结果,才能做出更精准的预估;同时,支持多维度聚合查询(例如按照广告各个不同层级维度,按照时间不同粒度的维度),并跨大区合并。一开始的版本是基于m

    2023-05-03
    159

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注