数据库中间件Mycat -->END

Mycat 是一一个开源的分布式数据库系统,但是由于真正的数据库需要存储引擎,而而 Mycat 并没有存储引擎,所以并不不是完全意义的分布式数据库系统。
那么Mycat 是什么?

Mycat 是数据库中间件,就是介于数据库与应用用之间,进行数据处理与交互的中间服务。

mycat在应用当中的作用如下图:

1.jpg

逻辑架构图

DBA 或者运维人员对数据进行分片处理理之后,从原有的一个库,被切分为多个分片数据库,所有的分片数据库集群构成了整个完整的数据库存储。


mycat.png

mycat可以让程序员只需要关心业务代码的编写,而不用担心后端数据库集群的负载均衡,读写分离,分库分表的数据分片逻辑的编写,只要直接连接mycat就可以了。

安装Mycat前与要先配置好JDK的环境

配置 MyCat

认识配置文文件

MyCAT 目前主要通过配置文件的方式来定义逻辑库和相关配置:

/usr/local/mycat/conf/server.xml
定义用用户以及系统相关变量,如端口等。其中用户信息是前端应用程序连接 mycat 的用户信息。

  
  
  
      
      
    druidparser  
    utf8mb4  
      
                              
      
      
        root  
        pcx_schema  
      
                              
      
      
        root  
        pcx_schema  
        true  
      
  

这里配置了两个可以来连接的用户
用户1 user1 密码root 给予了此用户pcx_schema数据库的权限
用户2 user2 密码root 给予了此用户pcx_schema数据库的只读权限
注意这里的pcx_schema 不一定是你数据库上的真实库名.可以任意指定.只要和接下来的schema.xml的配置文件中的库名统一即可。

/usr/local/mycat/conf/schema.xml
定义逻辑库,表、分片节点等内容。

  
  
  
      
      
      
  
      
      
  
      
      
      
      
      
      
          
        show slave status  
          
          
          
          
      
      
  
 

schemas 配置项所对应的值是逻辑数据库的名字,也可以自定义,但是这个名字需要和后面schema.xml 文件中配置的一致。

一,
这里TESTDB 就是我们对外声称的我们有数据库的名称 必须和server.xml中的用户指定的数据库名称一致添加一个dataNode="dn1" 是指定了我们这个库只在dn1上.没有进行分库.

二,
这里只需要改database的名字 db1 就是你真实数据库服务上的数据库名
根据你自己的数据库名进行修改.

三,

这里只需要配置三个地方 balance="1"与writeType="0" ,switchType=”1”
四,

/usr/local/mycat/conf/rule.xml
中定义分片规则。

没有最重要只有更重要

A. balance 属性负载均衡类型,目前的取值有 4 种:
1. balance="0", 不开启读写分离机制,所有读操作都发送到当前可用的 writeHost 上。
2. balance="1",全部的 readHost 与 stand by writeHost 参与 select 语句的负载均衡,简单的说,当双主双从模式(M1 ->S1 , M2->S2,并且 M1 与 M2 互为主备),正常情况下, M2,S1,S2 都参与 select 语句的负载均衡。
3. balance="2",所有读操作都随机的在 writeHost、 readhost 上分发。
4. balance="3", 所有读请求随机的分发到 wiriterHost 对应的 readhost 执行,writerHost 不负担读压力,注意 balance=3 只在 1.4 及其以后版本有, 1.3 没有。
B. writeType 属性
负载均衡类型,目前的取值有 3 种:
1. writeType="0", 所有写操作发送到配置的第一个 writeHost,第一个挂了切到还生存的第二个
writeHost,重新启动后已切换后的为准,切换记录在配置文件中:dnindex.properties .
2. writeType="1",所有写操作都随机的发送到配置的 writeHost。
3. writeType="2",没实现。
C. switchType 属性
- -1 表示不自动切换
- 1 默认值,自动切换
- 2 基于MySQL 主从同步的状态决定是否切换

你可能感兴趣的:(数据库中间件Mycat -->END)