【BigHereo】------多租户切库实现方案
来源:互联网 发布:海思摄像头软件 编辑:程序博客网 时间:2024/06/01 07:49
多租户切库实现方案
看到题目的那一刻,是不是有点懵逼,觉得很高大尚,其实不然,所有复杂事情都是由微小的事情组成,让我们来分而治之,要了解多租户切库实现方案,就先要了解什么是租户? 什么是多租户? 什么是切库?在去了解多租户之间的切库实现方案.
一,基础理论
解答:我这里有一个平台,例如ITOO高校云平台(今目标), 大米时代和北京大学都是里面的用户,大米时代和北京大学里面本身有很多很多的人,大米时代和北京大学叫两个租户.
2,什么是多租户?
解答:ITOO高校云平台或(今目标) 就叫多租户平台,很多的高校和学校就是多租户体.
3,什么是切库?
解答: 大米时代有一套数据库,北京大学也有一套库, 两个库的数据库表是一样的,只是里面 的数据不同,例如师范学院,401_itoo, 大米时代 402_itoo,这是两个库,只是数据不同.
切库,就是我现在是大米时代,我要登入北京大学,这是系统后台就要进行数据库的切换.
比如从师范学院,换成大米时代,业务逻辑其实就是退出,重新登录的一个过程.
4,怎么进行切库?
切库,这时,再用一张表,401_itooID,402_itooID,,,,等等,登录或切库是先 进入这张表 ,进行选择,拿到ID之后,再去ITOO系统进行登录的一个过程.
___________________________________________________________________________________________
下面就是详细的说明怎么切库,过程配置文件的配置:
二,ITOO多租户切库实现
我们用itoo项目中切库例子,结合itoo高效云平台项目来实践.(一).租户ID传递关系图
(二).相关配置
1.设置过滤器
(1)找到所负责对应的web项目的web.xml
(2).在该web.xml中加入如下的代码(web模块下:src/main/webapp/WEB-INF/web.xml)。
<!-- 添加拦截session过滤器 --> <filter> <filter-name>SessionOperFifter</filter-name><filter-class>com.dmsdbj.itoo.tool.tenancy.SessionOperFifter</filter-class> </filter> <filter-mapping> <filter-name>SessionOperFifter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
(3).测试
(该测试可以在以下几步都完成后再测试)
启动相应项目,发送请求,如果在控制台中得到以下内容,则测试成功
“过滤器拦截http请求成功,从session的到租户ID为*”
2.设置AOP
该设置共分为两个AOP设置,这两个AOP分别对应着调用方AOP设置和被调用方的AOP设置。
(1).添加配置文件
在web项目和service项目中找到Spring的配置文件,在开头加入如下代码。
Web项目在spring-mvc.xml文件中添加。
如下代码中添加下划线的部分为需要添加的代码。
<!-- 添加拦截session过滤器 --> <filter> <filter-name>SessionOperFifter</filter-name><filter-class>com.dmsdbj.itoo.tool.tenancy.SessionOperFifter</filter-class> </filter> <filter-mapping> <filter-name>SessionOperFifter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
(2).如果你需要调用其他的dubbo的服务,你需要在该项目的spring配置文件中添加下面的代码
(3).如果你的dubbo服务需要被调用,你需要在该项目中加入如下代码
(4).注册mybatis插件
在service模块中src/main/resources/spring/spring-mybatis.xml文件中
<property name="plugins"> <array> <bean class="com.github.pagehelper.PageInterceptor"> <property name="properties"> <value> helperDialect=mysql </value> </property> </bean > <!--注册mybatis拦截器--> <bean class="com.dmsdbj.itoo.tool.tenancy.mybatis.TenancyInterceptor"> </bean> </array></property>!在property name="plugins" 下面添加入红色代码部分。
小结:
多租户切库实现,这是不是很简单? 但是看到题目的那一刻,是不是有点懵逼,觉得很高大尚,其实不然,所有复杂事情都是由微小的事情组成,让我们来分而治之,要了解多租户切库实现方案,就先要了解什么是租户? 什么是多租户? 什么是切库?在去了解多租户之间的切库实现方案.
阅读全文
0 0
- 【BigHereo】------多租户切库实现方案
- Mycat 多租户方案
- Hbase多租户实现方案—资源限制—quotas
- 多租户--hibernate实现
- 多租户--EclipseLink实现
- hibernate实现多租户
- oracle实例、schema,以及多租户方案
- oracle实例、schema,以及多租户方案
- SaaS多租户模式数据存储方案
- Activiti工作流引擎多租户方案
- Eclipselink多租户的实现
- Activiti 多租户实现全过程
- 企业应用与互联网应用的区别,多租户方案
- SaaS多租户数据隔离的三种方案
- Hibernate连接mycat实现多租户
- 多租户
- 多租户
- 多租户
- Python 循环语句
- web前端学习日记4
- 没事别惹程序员_分分钟虐爆你
- 工作五年还在一线写代码丢人吗
- 给 HEAL 找BUG赢好礼17.1.16——HEAL iOS 1.0.4 内测
- 【BigHereo】------多租户切库实现方案
- 案例练习
- CentOS 启动mysql的时候发生的错误 The server quit without updating PID file(…)
- 【BigHereo】---Dubbo 应用和实践
- Big idea即将被大数据营销取代?腾讯广告主席刘胜义透露了哪些玄机?
- 没有规定的iOS或者安卓的
- nexus3.4.0部署使用
- Python While 循环语句
- HEAL