最近的工作内容就是写一个 DualHBaseClient
,在查询数据时间过长时,能够将同样的请求发给 replication 的集群,缩小 client 端的 p99、p999 延迟,减小毛刺。
实际开发最初的一版代码都没有花费1pd,性能测试倒测了好几天都不及预期,甚至优化之后各方面性能更差劲。
本文就是记录下导致此次性能问题的主要原因:CompletableFuture.
使用 Java 异步编程的时候,CompletableFuture
用起来还是相当舒服的,在HBase的异步API里,也大量的使用了CompletableFuture
,如果 CompletableFuture
有性能问题,那可就悲催了。