V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Feiox
V2EX  ›  Elasticsearch

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

  •  
  •   Feiox · 2015-06-12 18:45:14 +08:00 · 5017 次点击
    这是一个创建于 3453 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    8 条回复    2015-06-13 21:44:49 +08:00
    cevincheung
        1
    cevincheung  
       2015-06-12 18:51:12 +08:00
    elasticsearch能自己http访问添加数据?
    Feiox
        2
    Feiox  
    OP
       2015-06-12 19:03:58 +08:00
    @cevincheung 可以呀,通过 restful http api
    cevincheung
        3
    cevincheung  
       2015-06-12 19:24:29 +08:00
    @Feiox

    可以自己写个http接口然后让elasticsearch自己去访问http接口同步数据到es的库里?
    VYSE
        4
    VYSE  
       2015-06-12 19:27:03 +08:00
    直接用gevent monkey patch socket了
    sivacohan
        5
    sivacohan  
       2015-06-12 19:27:32 +08:00 via Android
    需要异步上celery吧。比较通用的解决办法。
    Feiox
        6
    Feiox  
    OP
       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
        7
    VYSE  
       2015-06-12 23:59:11 +08:00
    @Feiox 最好还是用gevent的queue加几个worker来负责请求es,不然的话会越来越卡。
    zts1993
        8
    zts1993  
       2015-06-13 21:44:49 +08:00
    先快速保存到数据库中(如mongo),然后用redis做个队列,再开一个程序去处理队列,,,,


    好像有点过于复杂了,是不是。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1053 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 18:40 · PVG 02:40 · LAX 10:40 · JFK 13:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.