• MyCat配置简述以及mycat全局ID


    Mycat可以直接下载解压,简单配置后可以使用,主要配置项如下:

    1. log4j2.xml:配置MyCat日志,包括位置,格式,单个文件大小

    2. rule.xml: 配置分片规则

    3. schema.xml:配置分库详细信息

    4. server.xml:配置登陆信息

    5.wrapper.conf : 配置jvm已经缓存大小

    PS:有些版本的安装包(比如1.6)存在一些问题,比如在配置server.xml的时候,配置多个登陆账户,会报错:

    The content of element type "user" must match "(property)+"

    一般就是server.dtd配置错误,修改一下server.dtd:

    <!ELEMENT user (property+,privileges*)>
    <!ATTLIST user name NMTOKEN #REQUIRED>

    还有一些错误,是1.6版本中druid.jar包中缺失DruidUpdateParser,用阿里巴巴的druid-release替换一下就好

    -----------------------------------------------------------------------分割线------------------------------------------------------------------------------------------

    -----------------------------------------------------------------------分割线------------------------------------------------------------------------------------------


    现在使用mycat数据库性全局ID,基本思想是:
    在某个数据节点上保存一个表:mycat_sequence,基本形式如下,current_value 为当前值,increment为步长,mycat维护这张表
    +--------+---------------+-----------+
    | NAME | current_value | increment |
    +--------+---------------+-----------+
    | GLOBAL | 300 | 100 |
    +--------+---------------+-----------+
    使用是,调用语句"next value for MYCATSEQ_GLOBAL",可以获取一个全局ID,有如下特征:
    1. 每次获得的ID是上一个ID+1,
    2. 批量插入时(一句SQL),获得的ID相同;
    3. 支持加减
    4. 到达整个步长时,mycat会去访问数据库mycat_sequence,平时自增mycat自己维护

    对于批量插入与父子表的情景,这种方法存在以下问题:
    1. 批量调用时,ID相同,不可取
    2. 每次自增为1,对于批量取ID的情景,需要频繁调用
    3. 对于父子表的调用,若分开调用则ID不同,若同时调用,需要事务保证一致性,增加操作复杂度

    对于批量分配全局ID,建议自己维持一个数据表t_GLOBAL_ID,形式如下:
    +--------+---------------+
    | i_class| current_ID |
    +--------+---------------+
    | 1 | 300 |
    +--------+---------------+
    当有n个数据需要处理时,先更新数据库:
    update GLOBAL_ID set current_ID= current_ID+n where i_class=1;
    然后对n个数据分配ID,分配完后可以当普通数据处理。
    当使用INNODB时,更改GLOBAL_ID会锁行,从而保证唯一性。

  • 相关阅读:
    Cocos2d-x 3.0 lua规划 真正的现在Android在响应Home密钥和Back纽带
    SICP 练习 (2.9)解决摘要:宽度和区间运算的关系间隔
    编tuxedo遇到服务问题
    数据库关闭
    三维CAD塑造——基于所述基本数据结构一半欧拉操作模型
    采用proguard困惑android代码
    a中国天气网pi(json格式)
    android 内存优化
    如何获得最近的餐馆谁
    采购入库单已暂估生成凭证,当月后来又收到采购发票,结算后如何处理?
  • 原文地址:https://www.cnblogs.com/AndersonX/p/8706535.html
Copyright © 2020-2023  润新知