elasticsearch的集群方式就那么几种,一个是直接用nginx、haproxy这样的负载均衡在集群的调度。另一种是用siniff方式自动嗅探。 

这里简单说下,在python语言下创建elasticsearch连接时,遇到的一些小问题。

query filtered
Traceback (most recent call last):
  File “es.py”, line 60, in <module>
    “range” : { “idate” : { “gte” : “2015-02-01″,”lte”:”2015-02-03″}}
  File “/Library/Python/2.7/site-packages/elasticsearch/client/utils.py”, line 68, in _wrapped
    return func(*args, params=params, **kwargs)
  File “/Library/Python/2.7/site-packages/elasticsearch/client/__init__.py”, line 497, in search
    params=params, body=body)
  File “/Library/Python/2.7/site-packages/elasticsearch/transport.py”, line 307, in perform_request
    status, headers, data = connection.perform_request(method, url, params, body, ignore=ignore, timeout=timeout)
  File “/Library/Python/2.7/site-packages/elasticsearch/connection/http_urllib3.py”, line 79, in perform_request
    raise ConnectionTimeout(‘TIMEOUT’, str(e), e)
elasticsearch.exceptions.ConnectionTimeout: ConnectionTimeout caused by – ReadTimeoutError(HTTPConnectionPool(host=u’192.168.1.103′, port=9000): Read timed out. (read timeout=10))
[ruifengyun@devops ~ ]$

这个问题很是明显,是超时timeout的问题,每次进行query的时候,默认是10s的超时的时间,不知道为毛默认为10s,在实际场景下,经常会被error, 个人建议在60s左右。 


sniff 的功能我相信大家应该有了解的,可以保证程序的可用性。 如果懒得用haproxy nginx做反向代理,那么可以用sniff 来进行集群探测。  创建对象的时候,引入n个节点,如果一个节点挂掉的话,对于程序没有影响的。 

 

ES肯定是内网使用的,但是如果为了安全,还是有必要做成证书认证的。 可以自己用openssl生成证书,在创建对象的时候,打开ssl和引入ca证书就可以了。 




对Python及运维开发感兴趣的朋友可以加QQ群 : 478476595 !!!
{ 2000人qq大群内有各厂大牛,常组织线上分享及沙龙,对高性能及分布式场景感兴趣同学欢迎加入该QQ群 }

另外如果大家觉得文章对你有些作用!   帮忙点击广告. 一来能刺激我写博客的欲望,二来好维护云主机的费用.
如果想赏钱,可以用微信扫描下面的二维码. 另外再次标注博客原地址  xiaorui.cc  ……   感谢!

大数据ElasticSearch遇到ignore_above问题

    以前有一个叫朱伟大神的人跟我聊过,凡是所谓的坑,都是因为你没看他的源码或者文档导致的。 这话听起来有道理,但问题ElasticSearch的各种文...

阅读全文

源码分析elasticsearch的pyes bulk批量实现

关于elasticsearch的操作,我一般是使用python elasticsearch库的。 维护他人的代码所以间接的再研究下pyes。 我们的所有业务都是依赖于ElasticSearch...

阅读全文

解决python elasticsearch的TransportError异常问题

解决python elasticsearch的TransportError异常问题 照例先扯闲话,今天的雾霾终于下去了,风很大,身体有些虚.  是时候该锻炼了.  收到elasticsea...

阅读全文