连接池熔断机制

    连接会话线程过多会增加系统资源的占用,为了管控系统资源,保证 SequoiaDB 服务端的连接请求控制在一定范围内,通常需要对连接池的最大连接数进行控制。

    另外一方面,为了实现更好的连接请求分流,SequoiaDB 连接池会用地址列表保存集群中所有协调节点的地址,然后根据不同的分配策略获取连接,在地址列表中的协调节点异常时,通常需要移除异常节点,以实现连接的获取效率。

    本文档从这两方面进行介绍说明,帮助用户深入了解连接池相关原理。

    dsOpt.setMaxCount(500) 方法的参数500即为最大连接数。

    当客户端连接请求数量达到了指定的最大连接数时,后续的新连接获取则需要进行等待,具体的等待时间可以在获取连接时进行指定(默认等待时间5s),还可以设置失败连接后的重试时间,更多使用方法可参见 。

    方法的参数 timeOut 即为等待超时时间,单位ms。当等待时间达 时,如果连接池中有以被获取的连接被释放成为了空闲连接,那么可以获取成功,否则获取失败。

    连接池参数配置和连接获取的完整代码可参考 Java驱动->连接池

    协调节点异常处理

    连接池的连接策略 sdbDataSourceStrategy 类中,有个类成员变量地址列表,以保存 SequoiaDB 集群的所有协调节点的地址。

    在初始化时,用户可以通过指定所有的协调节点地址,也可以指定其中一个。然后开启自动同步协调节点地址功能,连接池会自动进行同步保存所有协调节点地址。在后续操作中,还可以不断通过 方法新添协调节点地址。下面为指定所有协调节点的地址的方式,更多使用可参考 Java驱动->连接池

    SequoiaDB 连接池有效地提升了连接获取效率,并提供大量连接时不同策略的连接管理,从而在整体上提升了客户端和服务端性能。限制最大连接数范围,能够很好的实现对系统资源进行管控;在协调节点异常时,及时移除异常节点,很好的保证了连接获取效率。