有没 Elasticsearch 的 Python 异步连接库啊?

2015-06-12 18:45:14 +08:00
 Feiox

R.T.
另外,看文档上说 elasticsearch 这个官方实现中,是使用长连接来实现通信的。
如果改用 Tornade 内置的 http 访问功能,或者 request with gevent 的方式,每次都单独发起一个 http 请求,会对效率有多少影响?为什么官方不采用这种方式呢?
(我在自己的电脑上测试,平均每次连接用时 1.5 ms 左右,对于动辄 100ms 的查询、1000ms 的搜索耗时来说,貌似并不是个事儿 ~)

5036 次点击
所在节点    Elasticsearch
8 条回复
cevincheung
2015-06-12 18:51:12 +08:00
elasticsearch能自己http访问添加数据?
Feiox
2015-06-12 19:03:58 +08:00
@cevincheung 可以呀,通过 restful http api
cevincheung
2015-06-12 19:24:29 +08:00
@Feiox

可以自己写个http接口然后让elasticsearch自己去访问http接口同步数据到es的库里?
VYSE
2015-06-12 19:27:03 +08:00
直接用gevent monkey patch socket了
sivacohan
2015-06-12 19:27:32 +08:00
需要异步上celery吧。比较通用的解决办法。
Feiox
2015-06-12 20:21:35 +08:00
@cevincheung 额。。不是,我是说客户端,就是 python server 这边。。。囧rz
@sivacohan 感觉既然 es 人家都提供了 restful http api 然后 Tornade 又提供了异步的 http client,然后……
@VYSE 就是我说的 requests with gevent 啊。。。。这样频繁对 es 服务器发起请求,会不会有什么问题?
VYSE
2015-06-12 23:59:11 +08:00
@Feiox 最好还是用gevent的queue加几个worker来负责请求es,不然的话会越来越卡。
zts1993
2015-06-13 21:44:49 +08:00
先快速保存到数据库中(如mongo),然后用redis做个队列,再开一个程序去处理队列,,,,


好像有点过于复杂了,是不是。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/198081

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX