Mycat 和 Sharding JDBC 的区别

本文对比了Mycat与ShardingJDBC在水平切分、读写策略、全局ID生成、雪花算法应用等方面的区别,重点讲解了各自的优缺点和适用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Mycat 和 Sharding JDBC 的区别

Sharding JDBC 官方帮助文档:https://shardingsphere.apache.org/document/legacy/4.x/document/cn/manual/sharding-jdbc/configuration/
Mycat 官网 http://www.mycat.org.cn/

  • Mycat是服务器端的代理,Sharding JDBC是客户端的代理。

  • Mycat不支持同一库内的水平切分,Sharding JDBC支持。

  • Sharding JDBC 的读写分离中的读只能从读库中去读取,不能从写库中读,Mycat支持主库和从库分配策略去读取主库和从库。

  • 关于全局分布ID,Mycat支持统一ID序列(ID的值统一的从一个集中的ID序列生成器中获取),Sharding JDBC不支持,Sharding JDBC 支持UUID作为统一的全局ID,Mycat不支持UUID的方式。

  • MyCat支持的全局统一ID,是从ID序列生成器中取,Mycat的ID序列生成器有两种方式:本地文件方式、数据库方式。
    本地文件方式 :
    1.修改server.xml
    在这里插入图片描述 2.修改 sequence_conf.properties
    在这里插入图片描述

    • 必须:O_ORDER 是和数据库里面的表名一致。
    • Mycat Bug,设置完成之后必须把schema.xml中的checkSQLschema 改为false
    • 在这里插入图片描述

    数据库方式 :
    1.修改server.xml
    在这里插入图片描述2.修改 sequence_db_conf.properties
    在这里插入图片描述

  • O_ORDER 必须和数据库里面的表名一致

  • O_ORDER 后面对应的dn129指的是shema.xml中配置的数据节点,也是我们运行sql文件的节点。
    3.运行 mycat 提供的 sql文件
    在这里插入图片描述

  • 运行之后会生成一个个表和四个函数
    -在这里插入图片描述

生成统一ID的另一种方法:雪花算法 总共 64bit

0   41位的时间戳  5位机房  5位机器  12位序号
  • 基本保持全局唯一,毫秒内并发最大个数2的12次方 即 4096 个ID。
  • 时间回调可能会引起ID的重复。
  • Mycat 和 Sharding JDBC均支持雪花算法。
  • Sharding-JDBC 可以设置最大回调容忍时间。

Mycat如何设置雪花算法

  • 修改server.xml文件
    -在这里插入图片描述
  • 因为在雪花算法中生成的ID的长度是17位,所在在schema.xml中的分片规则需要斟酌一下,一开始用的auto-sharding-long 这个格则在rule.xml中对应的函数使用autopartition-long.txt配置,而autopartition-long.txt文件中最大的值不能超过100M,我们这理采用mod-long(取余规则)规则即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值