项目地址:
官方文档:
一、运行测试Step 1:新建两个数据库分别为seal_sharding、seal_sharding1
Step 2:分别导入db目录下sql文件
Step 3:打开项目,配置环境变量MYSQL_HOST、MYSQL_PORT以及用户名和密码
Step 4:运行测试文件(test包下)
二、租户ID的获取修改config包下MybaitsPlusConfig.java,获取当前登录用户的租户ID,这里默认写1@Override
public Expression getTenantId() {
try {
// 获取当前登录用户租户ID
String tenantId = "1";
if (!StrUtil.isEmpty(tenantId)) {
return new LongValue(tenantId);
}
throw new Exception(RetBack.errorJson(4001, "该租户不存在"));
} catch (Exception e) {
e.printStackTrace();
}
return new LongValue(-1L);
}
三、分库分表策略分库:根据表字段 租户ID(tenant_id) 模2(奇偶数)进行分库
分表:根据表字段 id 去hascode模2(奇偶数)进行发分表,分布式主键采用雪花算法(SNOWFLAKE),详见:Sharding-JD