数据库分库策略请教

最近在设计新系统的分库,计划在jdbc-shading, cobar 和 mycat三者之中选一个,想看看社区里面大神的意见。

jdbc-shading对单个简单应用比较友好,通过引入jar包,设置好规则,就可以了。但如果是一个服务群的话,是不是设计数据源的管理问题。另一方面,客户端工具要连上去找数据的话,是不是还得一个节点一个节点的去连。

而cobar和mycat,通过代理的方式,隐藏了后端数据库节点的细节,对外提供统一的数据源。对应用和客户端都比较友好,但是设计中间件,又要多一个高可用的考虑。

另外,在具体的分库策略上也想请教一下,我的应用是一个仓管应用,数据权限通过仓库编号做,大部分业务表都是带有仓库编号的,这种场景是不是比较适合采用mycat的ER分区策略。但是如果采用ER分区的话,会涉及一个热点仓库问题,个别仓库的业务量大导致的IO和数据量在各个节点中的不均衡。

或者我采用一致性hash的分区方案,但是这样,就基本放弃表连接了。

请教下各位,帮我想想怎么分比较合适,或者提供下各位所在系统的分区策略,以激发一下我的想象:)

阅读 2.3k
2 个回答

mysql的读写分离,分库分表目前都是通过mycat在做,mycat自身也是多个节点,前端加一个lb的,
分表策略都是hash加ER,hash分表基础上的ER并不会出现明显的热点问题,mysql架构本身就要求各业务模块耦合性低,所以联表也是能不用就不要用。
上面的兄弟说的mycat培训群的问题我也有碰到,确实有这么一些人,不清楚是不是官方,个人建议不需要管那么多,自己用的方便就行,我都是自己看文档做实验,好用就用

mycat 慎用 感觉领导者在搞传销一样 加群你就知道了 天天做培训 问个问题 都要红包

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题