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

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>
            
            
           
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
书名: 分布式数据库架构企业实践——基于Mycat中间件 作者:周继锋 冯钻优 陈胜尊 左越宗 ISBN:978-7-121-30287-9 出版年月:2016年11月 定价:79元 开本:787×980 1/16 普通关键词:计算机 分布式 数据库 学科关键词: 分布式 数据库 架构 实践 编辑推荐 讲解分布式数据库的书并不多,讲解其架构企业实践的就更少了。 本书基于国内知名的开源分布式数据库中间件Mycat讲解了如何实现分布式数据库,很有实践及借鉴意义。 内容简介 本书由资深 Mycat 专家及一线架构师、DBA 编写而成。全书总计 8 章,首先简单介绍了分布式系统和分布式数据库的需求,然后讲解了分布式数据库的实现原理,并对市场上存在的各种分布式数据库中间件进行了对比,再围绕着如何利用 Mycat 实现分布式数据库而展开。本书对 Mycat 从入门到进阶、从高级技术实践架构剖析、从网络通信协议解析到系统工作原理的方方面面进行了详细讲解,并剖析了 Mycat的 SQL 路由、跨库联合查询、分布式事务及原生 MySQL、PostgreSQL 协议等核心技术。通过本书不仅可以了解 Mycat 的基本概念,掌握 Mycat 配置等技术,还能感受到 Mycat架构设计之美,了解 Mycat 2.0的未来规划。 无论是对于软件工程师、测试工程师、运维工程师、软件架构师、技术经理,还是对于资深 IT 人士来说,本书都极具参考价值

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值