`
pedestrian_I
  • 浏览: 53855 次
  • 性别: Icon_minigender_1
  • 来自: 香港
社区版块
存档分类
最新评论

连接池控制多个数据源

    博客分类:
  • J2EE
阅读更多
需求场景如下:
J2EE系统有两个数据库:数据库A,数据库B(都是Oracle数据库,以读数据为主)
现要求在系统与数据库中间加入连接池。
数据库A是主数据库,平时正常连接是连接到A读写数据。
当A数据库挂了,连接不上或者忙碌用户达到某个数量的时候(我们假如是10个),系统访问数据库B。
当A数据库恢复正常了或者忙碌用户小于某个数量的时候(我们假如是1),重新连接回数据库B。

初步采用的C3P0连接池方案。
为系统配置两个数据源(Datasource),用程序监控两个数据源的使用情况。
并且根据实际情况做切换。

这是一个初步想法,不知道能不能行得通,有没有什么要特别考虑的,请各位大大指点一二。
谢谢。
分享到:
评论
8 楼 jwinder 2009-07-14  
考虑问题:
1、应用服务器宕掉了!
2、网络被阻塞了!
3、DB挂了!
等等。
有些事不能想像的!
7 楼 elvishehai 2009-07-14  
这个问题我深啊,呵呵,去打数据库高手吧,呵可
6 楼 farmmer 2009-07-14  
用心跳 检测 数据库连接状况
5 楼 fjlyxx 2009-07-10  
多加一层,用什么DS还是用什么DS  修改下获取DS的接口就可以了,PROXOOL的就是这么做的(别名).
4 楼 eclipse2008 2009-07-10  
此问题属于集群与负载均衡问题。

可以研究一下相应web服务器或者应用服务器的配置。
3 楼 GRDJE 2009-07-10  
1.上档次的数据库应该都可以
2.要totally ha, 你得有那个钱, 网络要ha, 电源要ups,......太多了
3.连接池是什么你懂吗?
2 楼 pedestrian_I 2009-07-10  
GRDJE 写道
HA可以再db那做掉, 何必弄到连接池那里,

1.是不是所有database都可以做到还是只有oracle可以。
2.另外,如果database A是异常挂掉,譬如死机网络中断之类,它能那么智能转到备份database B?
3.连接池有没有那么智能,可以自己控制住多个数据源呢?

谢谢你的回复
1 楼 GRDJE 2009-07-10  
HA可以再db那做掉, 何必弄到连接池那里,

相关推荐

    springboot连接池、动态配置多数据源连接池,特别适合大数据部门、数据中台服务的多数据源连接池.zip

    1. **配置数据源**:在`application.properties`或`application.yml`文件中,为每个数据源定义相应的属性,如URL、用户名、密码和驱动类名。 2. **创建数据源bean**:利用@ConfigurationProperties绑定配置文件中的...

    springboot-AOP实现多数据源动态切换(Druid连接池)

    该技术的关键在于如何在同一个应用中配置和使用多个数据源,以及如何在运行时根据上下文动态切换数据源。本知识点将围绕使用Spring AOP和Druid连接池来实现这一目标进行详细说明。 首先,要实现多数据源动态切换,...

    关于数据库连接池和动态数据源的实现

    数据源连接池的基本用法,配置信息,代码案例、 实现数据源的动态切换和案例 数据源连接池的基本用法,配置信息,代码案例、 实现数据源的动态切换和案例 数据源连接池的基本用法,配置信息,代码案例、 实现...

    springboot+mybatis多数据源+动态数据源配置(连接池)

    springboot+mybatis多数据源+动态数据源配置(连接池),mysql数据库,代码实现了简单的读写分离,但是不建议这种操作,建议使用数据库中间件进行读写分离,例如使用mycat进行读写分离主从热备,使用该代码对于多个...

    JDBC数据源连接池的配置和使用示例

    了解和掌握数据源连接池的配置和使用是每个Java开发者必备的技能。通过选择合适的连接池,配置合理的参数,以及有效利用监控工具,可以大大提高应用的性能和稳定性。在实际项目中,应根据具体需求选择合适的数据源,...

    tomcat数据源连接池配置

    数据源是一个接口,用于管理数据库连接,它提供了一种在多个线程或应用之间共享数据库连接的方式,避免了频繁创建和关闭连接导致的性能开销。在Tomcat中,我们通常使用内置的连接池实现,如Apache Commons DBCP或C3P...

    java 数据库 连接池驱动.rar

    - 创建数据源实例:根据选择的连接池库,初始化数据源对象。 - 获取和释放连接:通过数据源对象的getConnection()方法获取连接,使用完毕后调用Connection的close()方法,实际上将连接返回给连接池,而非真正关闭...

    mysql数据连接池

    5. **池化技术**:数据连接池采用池化技术,将数据库连接对象进行管理和调度,使得多个应用程序可以共享这些连接,避免了每次操作数据库都需要建立和断开连接的耗时过程。 在实际开发中,常见的MySQL数据连接池工...

    okhttp中连接池实现

    每个连接在被多个请求共享时,会进行同步控制,确保同一时刻只有一个请求在使用该连接,以避免数据冲突。 6. **超时设置**:OkHttp允许开发者自定义请求的超时时间,包括连接超时、读取超时和写入超时。这些超时...

    delphi实现数据库连接池

    这个过程需要注意控制并发,防止多个线程同时创建连接,可以使用锁(如TCriticalSection)来实现线程同步。 当应用需要一个数据库连接时,它会向连接池请求。这时,我们需要一个线程安全的获取连接的函数,它会检查...

    数据库连接池代码实现

    数据库连接池的概念是预先创建并维护一定数量的数据库连接,这些连接可以被多个应用程序线程复用,而不是每次需要时都去创建新的连接。这样不仅能减少数据库连接的创建和销毁开销,还能避免过多的并发连接导致数据库...

    自己封装的dbcp连接池封装,可以同时连接多个数据库

    在本项目中,您分享的是一个自定义封装的DBCP连接池,它具有同时连接多个数据库的功能。这个特性对于那些需要处理多种数据库的应用来说非常有用,例如数据集成、数据迁移或多数据源分析等场景。以下是对这个封装的...

    jdbc使用c3p0连接池连接数据库的工具类

    jdbc使用c3p0连接池连接数据库,支持配置多个数据源,有相关的查询测试。

    Springboot多连接池+websocket

    配置多个连接池意味着可以根据不同的业务需求,为不同的数据源设置不同的连接池,例如,对于读写频繁的操作可以配置高性能的连接池,而对于低频操作则可以选择更节省资源的连接池。这需要在`application.properties`...

    连接池源码和视频教程

    连接池,也称为数据库连接池,是一种在多线程应用程序中管理数据库连接的机制。它通过预创建并复用数据库连接来提高系统效率,避免了频繁地创建和关闭连接导致的性能损耗。连接池能够有效地减少数据库系统的负载,...

    Mongodb连接池for java

    描述中提到的“解决连接池不够的问题,多连接的问题”,意味着在实际项目开发中,可能会遇到因为数据库连接数量不足或者频繁创建和关闭连接导致的性能瓶颈。通过使用连接池,开发者可以在应用启动时预先分配一定数量...

    Java 连接池源码

    这两个操作都需要进行同步控制,防止多个线程同时操作同一连接。 3. **连接检查与回收**:连接池需要定期检查连接的有效性,例如通过执行一个简单的SQL语句来验证。如果发现无效的连接,需要从池中移除并创建新的...

    hibernate配置数据库连接池的三种方法

    C3P0是开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。在Hibernate中配置C3P0连接池,需要在`hibernate.cfg.xml`配置文件中添加以下属性: ```xml ...

    C#高效数据库连接池源码

    - **线程安全**:在多线程环境下,连接池必须确保并发安全,防止数据竞争和同步问题。 6. **性能优化**: - **最小/最大连接数**:设置合适的最小和最大连接数,平衡资源使用和性能需求。 - **连接检测**:定期...

    socket 客户端连接池实现

    在Java中,可以使用Apache Commons Pool库来实现Socket连接池,或者自定义一个基于LinkedList或ConcurrentHashMap的数据结构来管理和维护连接。同时,可以结合JMX(Java Management Extensions)进行监控,查看连接...

Global site tag (gtag.js) - Google Analytics