日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

ES-PHP向ES批量添加文档报No alive nodes found in your cluster

發布時間:2025/3/21 php 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ES-PHP向ES批量添加文档报No alive nodes found in your cluster 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
ES-PHP向ES批量添加文檔報No alive nodes found in your cluster
2016年12月14日 12:31:40 閱讀數:2668

參考文章phpcurl 請求Chunked-Encoded data 遇到的一個問題

問題描述

為了提高保存數據到es消耗的時間,采取積攢到3000條文檔的時候才保存到ES中,之前一直沒有問題,昨天新上了幾個log服務器后,經常會發現保存失敗報如下錯誤:

No alive nodes found in your cluster
  • 1

首先我要說這個錯誤真坑啊,以這個關鍵字搜索問題,花了兩天也沒解決,后來無意中FQ搜google,網后翻了好幾頁看到上面的參考文章,才知道,原來真正的錯誤信息隱藏在ES-PHP的Connection類中,代碼如下:

添加var_dump($response['error']->getMessage());一行代碼來輸出一下錯誤信息,錯誤信息如下:

cURL error 55: Send failure: Broken pipe
  • 1

首先覺得是curl的bug,所以我升級到了最新版本,發現問題還在,然后我調整3000條文檔一保存改為500條,發現保存是沒問題的,后來我懷疑是curl的body體是不是對大小有限制,但是經過詢問得到的回復是沒有這方面的限制,但是組長給我了一個提示,curl沒有限制,可能是接收方有限制,這個提示給我了新方向,查了一下es果然有配置,配置項為http.max_content_length,默認為100M,然后我嘗試了發送不同大小的數據看反應。

  • 第一次:141M,報錯
  • 第二次: 40M,保存成功

然后我跟es維護人員確認一下http.max_content_length確實是100M,由此問題定位成功,原因也知道了

解決方法

  • 1.一次性保存500條數據,確保一次性存儲數據量不超過100M
  • 2.由原來的VIP(一個host)改為幾點IP(多host),這樣做的好處是可以重試多次。

轉載于:https://www.cnblogs.com/gaoyuechen/p/9083112.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的ES-PHP向ES批量添加文档报No alive nodes found in your cluster的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。