在我之前接触的公司内部的oa管理系统中因为要和微信做数据交互,且公司oa系统和微信系统是两个项目时,用到了多数据源。
当然,我对于多数据源只是有一个浅薄的认识,直到今天中午公司内部就多数据源展开讨论后,我才知道知识的多面性。
首先整理一下我之前所使用的多数据源知识:
因为之前并没有接触过多数据的知识,在我们公司组长的指令下,通过applicationContext配置不同的DataSource(这里可以支持不同数据库类型,也支持同一类型数据库中不同数据源)。然后sessionFactory根据客户的每次请求,将dataSource属性设置成不同的数据源,以到达切换数据源的目的。
首先写一个Decorator类,通过它来动态切换数据源。同时在配置文件中将sessionFactory的dataSource属性由原来的某个具体的dataSource改为 MultiDataSource。MultiDataSource封装了具体的 dataSource,并实现了数据源动态切换
附:代码整理通过以上的分析,解决多数据源访问问题的关键,就集中在sessionFactory在执行数据持久化的时候,能够通过某段代码去根据客户的需要动态切换数据源,并解决资源争用的问题虽然此法存在很多局限性,但在改善后能解决我当时的燃眉之急。
现在我们假设通过三个相同的数据库保存高考考生的信息(数据库结构都相同,只是因为数据量大使用三个库,此处不涉及插入,只涉及统计数据读取数据)
此处重点整理在讨论过程中提到的解决方法。
1.weblogic 多数据源
2.大神贡献资源
3.应用和数据库之间加缓存层能解决吗(数据库缓存)
5.同时读三个,你怎么解决从哪个数据库查找某条数据,不是缓存全部的数据,可以配置策略,比如最长未使用
7.分页呀。
分别部署在 三个服务器上你最后的 那个统计 调用 这三个服务器上的 统计)
11.搞个大数据存在hbase上
本文探讨了多数据源的实现方式及应用场景,包括通过装饰器类动态切换数据源、使用WebLogic管理和配置多数据源等方法。同时介绍了如何利用缓存层、负载均衡等手段优化数据读取效率。
2029

被折叠的 条评论
为什么被折叠?



