为了有效的使用后端连接,减少重复向数据库建立新连接带来的时间和资源开销。提供了连接管理的功能。oneproxy-for-sqlserver使用oneproxy-monitor提供的连接管理功能来实现连接的管理,提升操作效率。
oneproxy-monitor中提供的连接管理功能的使用过程如下所示:
1) 首先当客户端连接到来时,向连接池申请连接。如果没有获取到连接,则直接向数据库建立新的连接。
2)把在释放连接的时候,把数据库的连接保存到连接池中。
3)连接池每个一段时间,就检查连接池中连接的使用情况,如果很久没有使用,则把连接释放掉。
4)连接池同时提供了检测连接有效性的功能,如果连接无效也会别释放掉。
oneproxy-monitor提供的连接池有如下特点:
1)不主动建立新连接,只是被动的管理连接。
2)维持了连接的有效性功能。
3)主动释放连接的功能。这样有效的解决了数据库建立连接过多浪费的问题。
oneproxy-monitor提供这样的连接管理功能能够有效的维持连接池中的连接数量在一个合理的范围。不会出现大量连接不使用而被保留在连接池中的现象,有效的抑制了连接的浪费情况。但是这也有一个小的缺点,那就是第一批连接建立的过程要慢一些。但是在实际的应用中,是可以容忍的。
oneproxy-for-sqlserver中如果要使用连接池功能,则需要在[oneproxy]标签下配置如下的参数:
passwordseparate = truereadslave = trueuseconnectionpool = true
默认情况下,上面三个参数都是为true。如果需要使用连接池功能,则可以不增加上面配置也可。如果要选用可能,则需要注意上面三个配置的功能。在下面说明下这是三个配置的功能:
passwordseparate: 是支持前后端密码分离的功能,如果要使用读写分离和连接池功能,则必须设置这个为true。
readslave: 是支持读写分离的功能。需要passwordseparate同步使用。
useconnectionpool:是支持连接管理的功能。需要passwordseparate同步使用。
与连接管理功能相关的配置([oneproxy]标签下配置)如下:
poolconntimeoutreleasetime = 60poolconncheckactivetime = 5
其中:
poolconncheckactivetime: 检查连接活性的时间,单位为秒(默认值为:5秒)
poolconntimeoutreleasetime: 空闲多长时间后被释放的时间,单位为秒(默认为:60秒)。
更多信息请关注:
QQ群: