请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

MySQL1主2从在SSM框架中的实现

翔仔老师你好,Mysql主从库配置,我看了DynamicDataSource的方法实现,你是通过判断SQL是否是增删改,或者查,来设置不同的数据源:
if (sql.matches(REGEX)) {
lookupKey = DynamicDataSourceHolder.DB_MASTER;
} else {
lookupKey = DynamicDataSourceHolder.DB_SLAVE;
}
你这种方式我可以理解为只能有1个主库,1个从库。但是,如果是1主2从这种设置,从库该如何设置?

正在回答

1回答

同学好,这里给同学一个建议哈,但是课程里面没有,同学可以试着实现一下,在else里面,把多个从库加载成一个list,然后负载均衡或者随机分配到其中一个slave里面,lookupKey = 其中一个slave即可

负载均衡:可以对请求的ip通过取模运算(模数是list的size)

0 回复 有任何疑惑可以回复我~
  • 提问者 屋顶的蜗牛 #1
    谢谢老师,你的想法也是可以的。我后来用了个中间件Mysql Router来实现读负载均衡,有个思路就行了,还是先把课程学完。
    回复 有任何疑惑可以回复我~ 2019-10-09 21:33:02
  • 翔仔 回复 提问者 屋顶的蜗牛 #2
    同学也可以考虑一下,通过ip散列到多个主库去,进而还能扩展出多个主从集群来。此外中间件这些原理其实也类似的,作为学习的话最好能了解其原理,加油
    回复 有任何疑惑可以回复我~ 2019-10-10 00:33:17
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信