- Elasticsearch源码解析与优化实战
- 张超
- 308字
- 2020-08-27 22:16:02
1.3 客户端API
当需要实现一个客户端对集群进行读写操作时,可以选择REST接口、Java REST API,或者Java API。
Java REST API是对原生REST接口的封装。REST接口、Java REST API使用9200端口通信,采用JSON over HTTP方式,Java API使用9300端口通信,数据序列化为二进制。
使用Java API理论上来说效率更高一些,但是后来官方发现实际上相差无几,但是版本迭代中却因为Java API向下兼容性的限制不得不做出许多牺牲,Java API带来的微弱效率优势远不及带来的缺点。ES不是高QPS的应用,写操作非常消耗CPU资源,因此写操作属于比较长的操作,聚合由于涉及数据量比较大,延迟也经常到秒级,查询一般也不密集。因此RPC框架的效率没有那么高的要求。后续Java API将逐渐被Java REST API取代。官方计划从ES 7.0开始不建议使用Java API,并且从8.0版本开始完全移除。