在应用刚起步时,发到预发测试或者生产小部分流量进来时,发现aerospike的rt特别高,在流量稍微大点时,rt恢复正常。基本可以断定客户端存在预热问题。
应用没有设置连接池配置,因此check下默认配置
可以看到,默认的每个节点(说的asp节点)最小连接数是1,连接最大空闲时间是55s,这说明应用刚启动时,这时候流量稍微大一点过来,就会有超时的情况,耗在连接创建时间了;
流量低的情况更致命,每次流量来的间隔可能都超过maxSocketIdle了,这就导致每次都要创建链接。这就是原因所在。
解决的方法也比较简单,调大最小连接数就行了,发现Java客户端4.1.2最小连接数居然不能设置…
只能退而选择调大最大空闲时间,至于流量大的情况,只能做好应用优雅上线了,坑爹的asp客户端代码…戏称为印度分部写的