ES-PHP向ES批量添加文档报No alive nodes found in your cluster
2023-09-11 14:20:31 时间
ES-PHP向ES批量添加文档报No alive nodes found in your cluster
问题描述
为了提高保存数据到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),这样做的好处是可以重试多次。
相关文章
- new QDM 前后端开发总结(net6+vue+mysql+redis+mq+mongodb+ES+docker)
- Can't find PHP headers in /usr/include/php
- php之快速入门学习-16(PHP 魔术变量)
- 统计php程序运行时间及设置PHP最长运行时间
- 数仓工具—Hive集成篇之UDF写ES(04)
- 分布式系列教程(38) -SpringBoot基于ES的网盘应用
- Es使用。
- PHP 错误与异常 笔记与总结(3)PHP 配置文件(php.ini)中与错误相关的选项 与 设置错误级别
- 《OpenGL ES 2.0游戏开发(上卷):基础技术和典型案例》一6.5 光照的每顶点计算与每片元计算
- 《OpenGL ES 3.x游戏开发(下卷)》一1.3 一致缓冲区对象
- 《OpenGL ES 3.x游戏开发(下卷)》一1.6 帧缓冲与渲染缓冲
- 《OpenGL ES 3.x游戏开发(下卷)》一2.6 吹气膨胀特效
- 转 php 框架 Php 依赖框架 后台 调用python 脚本
- 转 php 框架 Php 依赖框架
- PHP 小tip .(@)符号和 php if 赋值
- 请说说CommonJS和ES module的区别
- 《OpenGL ES应用开发实践指南:Android卷》——第3章 编译着色器及在屏幕上绘图
- 《OpenGL ES应用开发实践指南:Android卷》—— 3.5 在屏幕上绘制
- php base64不能解码_PHP base64编码后解码乱码的解决办法
- PHP百分号转小数,php 小数转换百分数函数
- PHP--关于模板的原理和解析(php模板原理)
- php.ini中safe_mode开启之后对于PHP系统函数的影响
- 深入理解php内核 编写扩展 I:介绍PHP和Zend
- ES 关于 Index、Type、Document
- ES关于如何合理分片的一些参考
- Elasticsearch(009):es中index(索引)的新增、修改、删除、关闭等操作
- php源码安全加密之PHP混淆算法.