读《分布式数据库架构及企业实践》---笔记三

原创 2017年06月06日 11:41:09
sequence配置文件
    在实现分库分表的情况下,数据库的自增已经无法保证在集群中是全局唯一的主键,因此,Mycat提供了全局sequence,并且提供了本地配置、数据库配置等多种实现方式。
    1. 本地文件方式
        采用该方法,Mycat将sequence配置到classpath目录的sequence_conf.properties文件中。
        在sequence_conf.properties文件中做如下配置:
        GLOBAL.HISIDS=  ##HISIDS表示使用过的历史分段(一般无特殊需要则可不配置)
        GLOBAL.MINID=10001  ##MINID表示最小的ID值
        GLOBAL.MAXID=20000  ##MAXID表示最大的ID值
        GLOBAL.CURID=10000  ##CURID表示当前的ID值
        要启用这种方式,则首先需要在server.xml中配置如下参数:
            <system><property name="sequnceHandlerType">0</property></system>
        注意:sequnceHandlerType配置为0,表示使用本地文件方式。
        insert into table1(id,name) values(next value for MYCATSEQ_GLOBAL, 'test');
        采用这种方式的缺点是Mycat重新发布后,配置文件中的sequence会恢复到初始值;优点是本地加载且读取速度较快。
    2.数据库方式
        在数据库中创建一张名为sequence的表,有sequence的当前值(current_value)、步长(increment int类型,指每次读取多少个sequence,假设为K)等信息。
        获取步骤如下:
        (1)初次使用sequence时,根据传入的sequence名称,从数据库表中读取current_value、increment到Mycat中,并将数据库中的current_value修改为current_value+increment值。
        (2)Mycat将读取到的current_value+increment作为本次使用的sequence值,在下次使用时,sequence自动加1,当使用increment次后,执行与步骤1相同的操作。
        (3)Mycat负责维护这张表,用到那些sequence时,只需要在这张表中插入一条记录即可。若某次读取的sequence没有用完系统就宕机了,则本次已经读取sequence且未使用的值将会被丢弃。
        要启用这种方式,则需要在server.xml中配置:
            <system><property name="sequnceHandlerType">1</property></system>
    3.本地时间戳方式
        (1)server.xml中配置:
            <system><property name="sequnceHandlerType">2</property></system>
        (2)配置sequence_time_conf.properties文件中。
        WORKID=0~31,可取0~31中的任意整数。
        DATACENTERID=0~31,可取0~31中任意整数。
        多个Mycat节点下每个Mycat配置的WORKID、DATACENTERID都不一样,组成唯一标识,总共支持32*32=1024种组合。
    4.其他方式
        (1)使用catlet注解方式
        (2)也可以使用Zookeeper方式实现。
    5.自增长主键

zk-create.yaml配置文件
    概念:
        (1)Mycat Zone指的是分布于不同地域(Zone)的Mycat Cluster,Zone的命名建议用地理位置来标识。
        (2)Clustar是Mycat集群,一个Cluster包含一个或多个Mycat Server。
        (3)一般来讲,一个Zone都有一组主备Mycat负载均衡器LB,LB与同一中心内的Mycat Cluster组成一对多关系,即一个LB可以服务一个中心内所有Cluster的负载均衡请求,也可以是多个LB,每个负担不同的Mycat Cluster的流量。
        (4)建议每个LB都有一个Backup,Backup平时不连接Mycat Cluster,但是监测到LB Master下线以后,就立即开始连接Mycat Cluster并开始工作。

        关系图如下:


    zk-create的总体结构如下:
        zkURL:127.0.0.1:2181 Zookeeper的连接信息你
        +mycat-cluster:集群中所有的主机信息
        +mycat-hosts:主机信息
        +mycat-zones:Mycat中心
        +mycat-MySQLs:MySQL信息
        +mycat-MySQLgroup:复制组的信息
        +mycat-lbs:mycat lb
        
其他配置文件
    1.缓存文件配置
        Mycat支持encache、mapdb、leveldb缓存,可以通过配置文件cacheservice.properties决定使用哪种缓存框架。
    2.日志配置
        Mycat使用log4j作为日志管理工具。
    3.AIO、NIO的配置
        在server.xml中usingAIO配置I/O类型:0为NIO、1为AIO
        <property name="usingAIO">0</property>
            
            
           
版权声明:本文为博主原创文章,未经博主允许不得转载。

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

读《分布式数据库架构及企业实践》---笔记一

分布式系统采用的是并行计算,而单点式的系统采用的串行计算。分布式系统的特点:高性能,可靠性,扩展性和透明性。          分布式数据库是指数据在物理上分布而在逻辑上集中管理的数据库系统。    ...

Mycat社区出版: 分布式数据库架构及企业实践——基于Mycat中间件

书名: 分布式数据库架构及企业实践——基于Mycat中间件 作者:周继锋 冯钻优 陈胜尊 左越宗 ISBN:978-7-121-30287-9 出版年月:2016年11月 定价:79元 开本:787×...
  • wind520
  • wind520
  • 2016年11月18日 10:46
  • 24422

读《分布式数据库架构及企业实践》---笔记二

Mycat核心概念:     逻辑库:数据库中间件可以被当作一个或多个数据库集群构成的逻辑库。     逻辑表:读写数据的表就是逻辑表。     分片表和非分片表:区别在于是否该表是否切分到多个...

Tomcat服务器配置参考之Valve组件

Valve组件概述Valve元素是插入在Catalina容器(包括Engine,Host或者Context)处理流程中的组件。不同的组件有不同的处理能力。下面将对每个Valve组件进行描述以下的描述使...

填充算法(二)优化递归填充算法

1、 2、 3、 4、
  • wwkaven
  • wwkaven
  • 2014年11月02日 20:22
  • 927

分布式数据库架构及企业实践——基于Mycat中间件

名: 分布式数据库架构及企业实践——基于Mycat中间件 作者:周继锋 冯钻优 陈胜尊 左越宗 ISBN:978-7-121-30287-9 出版年月:2016年11月 定价:79元 开本:...

分布式数据库架构及企业实践mycat

  • 2017年11月01日 11:39
  • 62.01MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:读《分布式数据库架构及企业实践》---笔记三
举报原因:
原因补充:

(最多只允许输入30个字)