db 集群生成主键问题

  • 如果让集群自增,不同分片的主键会出现重复

MyCat 全局主键方式

MyCat 全局主键 - 图1

使用 zk 作为主键生成

编译 server.xml

  • 修改 sequnceHandlerType 属性值为 3
    1. <properties name="sequnceHandlerType">3</properties>

编辑 myid.properties

  1. loadZK=true
  2. # zk 集群 url
  3. zkURL=<ip1:port>[,<ip2:port>,...]
  4. # 集群名称,自定义
  5. clusterId=<style_name>
  6. # 当前节点的 id,自定义
  7. myid=<style_myid>
  8. # 集群中所有节点的 id
  9. clusterNodes=<name_of_myid>[,<otherName_of_myid>,...]

主键字段必须使用 bigint 类型

获取主键

  1. -- sql 使用
  2. SELECT NEXT VALUE FROM MYCATSEQ_GLOBAL;