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

来源:5-3 代码层读写分离的实现A

屋顶的蜗牛

2019-10-08

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

写回答

1回答

翔仔

2019-10-08

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

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

0
2
翔仔
回复
屋顶的蜗牛
同学也可以考虑一下,通过ip散列到多个主库去,进而还能扩展出多个主从集群来。此外中间件这些原理其实也类似的,作为学习的话最好能了解其原理,加油
2019-10-10
共2条回复

Java双版本(SSM到SpringBoot)校园商铺全栈开发

SSM商铺V1.0,解决毕设痛点;SpringBoot商铺V2.0,满足工作刚需

5113 学习 · 8144 问题

查看课程