经测试,极限高负载条件下,FastDbClient比DbClient有10%到20%的性能提升。
配置文件中的每个db_client配置项下有个is_fast子选项,该选项为true时,表明该对象是FastDbClient。
FastDbClient的获取接口和普通DbClient的类似,如下:
使用
FastDbClient的使用与普通的DbClient几乎完全一致,除了下面这些限制(高性能的代价是使用上有约束,这是可以理解的)。
- 获取和使用都必须在框架的IO事件循环线程或主线程内,在其它线程获取FastDbClient只能得到空指针,在其它线程使用它,会有无法预料的错误(因为无锁的条件遭到破坏),好在用户在应用编程的多数地方都是在IO线程内,比如各种控制器的处理函数内,过滤器的过滤函数内。容易知道,FastDbClient接口的各种回调函数内也是在当前IO线程,可以放心嵌套使用。
- 同步的事务创建接口是有可能阻塞的(所有连接都忙的时候),所以FastDbClient的同步事务创建接口直接返回空指针,如果要在FastDbClient上使用事务,请使用异步的事务创建接口。