【BigHereo】------多租户切库实现方案

来源:互联网 发布:海思摄像头软件 编辑:程序博客网 时间:2024/06/01 07:49


多租户切库实现方案


   
  看到题目的那一刻,是不是有点懵逼,觉得很高大尚,其实不然,所有复杂事情都是由微小的事情组成,让我们来分而治之,要了解多租户切库实现方案,就先要了解什么是租户? 什么是多租户? 什么是切库?在去了解多租户之间的切库实现方案.
 

            

一,基础理论


1,什么是租户? 
    解答:我这里有一个平台,例如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" 下面添加入红色代码部分。



小结:
     多租户切库实现,这是不是很简单? 但是看到题目的那一刻,是不是有点懵逼,觉得很高大尚,其实不然,所有复杂事情都是由微小的事情组成,让我们来分而治之,要了解多租户切库实现方案,就先要了解什么是租户? 什么是多租户? 什么是切库?在去了解多租户之间的切库实现方案.





原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 久量时尚夜光台灯不亮了怎么办 我想做水电暖工程没有资质怎么办 修手机被弄丢了没有开维修单怎么办 手机去维修被老板弄丢了怎么办 5年保修期过后房子楼顶漏水怎么办 墙内水管漏水怎么办3步骤巧维修 下面有地暖下面水管漏水怎么办 热水器接的塑料水管子漏水怎么办 电热水器烧热水时热水管漏水怎么办 户户通位置锁定模块异常1怎么办 户户通位置锁定模块异常3怎么办 逆战安全系统检测客户端异常怎么办 电视户户通位置信息模块异常怎么办 苹果手机wi-fi模块坏了怎么办 xp本地连接受限制或无连接怎么办 公司没帮二级建造师延续注册怎么办 考造价师考过了年限不够怎么办? 上海众非称重不显示数字怎么办 宝骏630防火墙隔热棉掉了怎么办 冷车启动水温报警灯亮了怎么办 租铺位面积比合同面积小怎么办 农村村民建房领居不肯签名怎么办 车祸死者家属不来协商赔偿怎么办 26岁想回去当老师了怎么办 面包车排量小空调带不凉快怎么办 科三包过不给退钱人跑了怎么办 护师职称考试成绩单丢了怎么办 河南二级建造师报名地址填错怎么办 山东以前的企业没有消防备案怎么办 重庆渝北初级审核时间过了怎么办 初级职称复核毕业证弄丢了怎么办 杭州公租房选房后变更单位的怎么办 契税交了贷款办不下来怎么办 天津公租房住满5年后怎么办 大江里钓鱼水流太急立不住漂怎么办 房子定金交了不想要了怎么办 房子付了首付不想要了怎么办 三国大时代4王越死了任务怎么办 红米2卡顿反应慢怎么办 国税和地税合并新进的公务员怎么办 买车合格证不给我们要怎么办