多租户组件
简介
这是一个提供多租户能力的自动装配 Starter,组合已有的 risenet-y9boot-starter-jpa-tenant、 risenet-y9boot-starter-liquibase 组件,配合数字底座管理,使接入系统中快速启用以下功能:
- 系统启动时根据配置文件中配置的
y9.systemName系统名找到其租户数据源,结合 liquibase 或 JPA 实现数据库表结构同步。 - 租户租用系统时,被租用系统监听到
租户租用系统事件,同步新增租户的数据库表结构。系统可以实现net.risesoft.init.TenantDataInitializer接口在数据库表结构同步完成后做一些租户数据的初始化。 - 租户租用应用时,被租用系统监听到
租户租用应用事件,系统可以实现net.risesoft.init.TenantAppInitializer接口做一些应用初始化。 - 系统取消租用或数据源变化时,监听到
租户数据源同步事件,刷新租户数据源。
目前有两种获取事件的方式,选择其中一种方式即可:
db,数据库轮询获取。kafka,监听 Kafka 消息获取。
功能引用
添加依赖
添加 risenet-y9boot-starter-multi-tenant 多租户组件依赖
<dependency>
<groupId>net.risesoft</groupId>
<artifactId>risenet-y9boot-starter-multi-tenant</artifactId>
<version>[最新正式版本]</version>
</dependency>如需使用 SNAPSHOT 版本,且 maven 没有 POM 继承链至数字底座的 y9-digitalbase-parent 则还需将有生的私服仓库地址添加到 pom.xml 文件中。
xml
<repositories>
<repository>
<id>y9-internet-repo</id>
<url>https://svn.youshengyun.com:9900/nexus/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<!-- <updatePolicy>always</updatePolicy> -->
<!-- always,daily(default),interval:XXX,never -->
</snapshots>
</repository>
</repositories>修改配置文件
根据选择的获取事件方式修改配置文件:
- db
yaml
y9:
systemName: riseplatform # 系统名称需与数字底座中注册的一致
feature:
multi-tenant:
event-source: dbproperties
y9.systemName=riseplatform # 系统名称需与数字底座中注册的一致
y9.feature.multi-tenant.event-source=db- kafka
使用 kafka 时,还需添加 kafka 相关配置
yaml
spring:
kafka:
bootstrap-servers: localhost:9092
consumer:
group-id: y9demo-sync
y9:
systemName: riseplatform # 系统名称需与数字底座中注册的一致
feature:
multi-tenant:
event-source: kafkaproperties
spring.kafka.bootstrap-servers=localhost:9092
spring.kafka.consumer.group-id=y9demo-sync
y9.systemName=riseplatform # 系统名称需与数字底座中注册的一致
y9.feature.multi-tenant.event-source=kafka