读写分离

优质
小牛编辑
133浏览
2023-12-01

从1.r.58开始, 内置读写分离支持

ioc js形式的配置

NutDaoRunner新增了slaveDataSource属性

    dataSource : {
        // master数据源
    },
    slaveDataSource : {
        // slave数据源,负责读
    },
    dao : {
        type : "org.nutz.dao.impl.NutDao",
        args : [{refer:"dataSource"}], //引用主数据源
        fields : {
            runner : {refer: "daoRunner"}
        }
    },
    daoRunner : {
        type : "org.nutz.dao.impl.sql.run.NutDaoRunner",
        fields : {
            slaveDataSource : {refer:"slaveDataSource"} //引用slave数据源
        }
    }

读写分离的判据

  • 不在事务内
  • select语句

继承NutDaoRunner覆盖selectDataSource方法,可以实现多个从库或分库分表.