居然是你

关于ES7.X移除Transport Client 性能疑惑

Elasticsearch | 作者 xixifusi_heart | 发布于2019年11月14日 | 阅读数:312

ES7.*移除Transport Client.关于原因官方虽然有解释但是都没提到性能问题
这里有篇官方的博客 https://www.elastic.co/cn/blog ... lient
对比了Rest Client和Transport Client之间的性能问题.
但是测试基准是单线程客户端.
Transport Client是基于Netty实现的tcp客户端.非阻塞IO 多路复用 在高并发下表现很好
但是Rest Client是基于HTTP实现的.HTTP1.1不支持多路复用.在高并发下性能应该会下降的很明显

欢迎大家拍砖 交流
已邀请:

medcl - 今晚打老虎。

赞同来自: xixifusi_heart laoyang360

性能是会有一些影响,不过现实情况,这些差异你根本不用担心的,使用 HTTP 代替 TCP 更多的是避免版本耦合的问题,以前服务器和客户端版本不一致,会出现两边对象无法反序列化的问题,如果用 TCP,升级服务端,客户端也得都升级,什么滚动升级基本上也别想了。 此为 HTTP 性能已经足够强悍了,并发吞吐同样可以达到很高,更多的时候是其它资源先不够,此外 Rest协议底层一样也是基于 Netty 的。

zqc0512 - andy zhou

赞同来自: xixifusi_heart

T S 耦合太高了。 我没有怎么发现R C性能有撒大问题呢。
你RC可以多指定几个ES服务器呢,轮训 应该问题不大的。
 
匿名用户

匿名用户

赞同来自:

HTTP的性能不差了。而且客户端版本太多了,更难维护。
特别是一些系统是多源的,那使用TCP的客户端就是灾难了。
 

Charele

赞同来自:

其实是一样的,Rest方式只是在外面包了一层,用起来更方便而已。
 
你去看看RestXXXAction里面的prepareRequest()实现方法就明白了。

要回复问题请先登录注册