多数据源的内容

来源:互联网 发布:淘宝晟尚数码 假货 编辑:程序博客网 时间:2024/06/02 01:27

   在我之前接触的公司内部的oa管理系统中因为要和微信做数据交互,且公司oa系统和微信系统是两个项目时,用到了多数据源。

   当然,我对于多数据源只是有一个浅薄的认识,直到今天中午公司内部就多数据源展开讨论后,我才知道知识的多面性。

首先整理一下我之前所使用的多数据源知识:

   因为之前并没有接触过多数据的知识,在我们公司组长的指令下,通过applicationContext配置不同的DataSource(这里可以支持不同数据库类型,也支持同一类型数据库中不同数据源)。然后sessionFactory根据客户的每次请求,将dataSource属性设置成不同的数据源,以到达切换数据源的目的。

首先写一个Decorator类,通过它来动态切换数据源。同时在配置文件中将sessionFactory的dataSource属性由原来的某个具体的dataSource改为 MultiDataSource。MultiDataSource封装了具体的 dataSource,并实现了数据源动态切换

     通过以上的分析,解决多数据源访问问题的关键,就集中在sessionFactory在执行数据持久化的时候,能够通过某段代码去根据客户的需要动态切换数据源,并解决资源争用的问题
虽然此法存在很多局限性,但在改善后能解决我当时的燃眉之急。
附:代码整理

现在我们假设通过三个相同的数据库保存高考考生的信息(数据库结构都相同,只是因为数据量大使用三个库,此处不涉及插入,只涉及统计数据读取数据)

  此处重点整理在讨论过程中提到的解决方法。

  1.weblogic 多数据源

  2.大神贡献资源

http://blog.csdn.net/rj042/article/details/21654627
 3.应用和数据库之间加缓存层能解决吗(数据库缓存)
 4.redis应该可以(键值对型的数据
 5.
同时读三个,你怎么解决从哪个数据库查找某条数据,不是缓存全部的数据,可以配置策略,比如最长未使用
 可以用Nginx 负载均衡
 6.存储过程可以吗?我们集采系统那样
 7.分页呀。
 8.如果允许的话,查询条件写在存储过程中。(做统计用存储过程最快)
 9.三个管理段,做集群
 10.查询统计,调用接口,然后再把结果加起来
 ( 每一套程序,写一次查询,然后再写一套程序,把三个查询的结果,做统计
  分别部署在 三个服务器上你最后的 那个统计 调用 这三个服务器上的 统计)  
 11.搞个大数据存在hbase上,百万级的数据库秒查询


1 0
原创粉丝点击