背景:
系统数据同步到es库中后点查找没翻译,前后台获取错误代码如标题
service unavailable:Elasticsearch exception [type=too_long_frame_exception, reason=An HTTP line is larger than 4096 bytes.
分析解决
没分析,直接百度
默认情况下ES对请求参数设置为4K,如果遇到请求参数长度限制可以在elasticsearch.yml中修改如下参数:
http.max_initial_line_length: "8k"
http.max_header_size: "16k"
另外一个好像这个选项,一起加了
http.max_content_length: 500mb
重启,问题解决。
[nrms@localhost config]$ vi elasticsearch.yml
# =====================新资源ES自定义配置========================
# 集群名称,请确保局域网中集群名称不冲突
cluster.name: nrms-es-cluster
# 节点唯一标志,请确保在集群内启动的示例节点名称不冲突
node.name: nrms-es-node01
# 数据目录与日志目录
path.data: /home/yyq/thirdparty/elasticsearch/es-data
path.logs: /home/yyq/thirdparty/elasticsearch/es-logs
# 网络监听地址
network.host: elasticsearch1.nrmsserver
http.port: 9200
# 跨域设置
http.cors.enabled: true
http.cors.allow-origin: "*"
# 集群设置生产环境要求三台主机。使用hosts文件配置主机名称
# discovery.zen.ping.unicast.hosts: ["es1.nrmsserver", "es2.nrmsserver", "es3.nrmsserver"]
# discovery.zen.minimum_master_nodes: 2
http.max_initial_line_length: "8k"
http.max_header_size: "16k"
http.max_content_length: 500mb
2020年12月30日记录
Limit of total fields [1000] in index [xxxx] has been exceeded
这个是修改后新增的问题,
需要添加如下配置(我这是在应用里进行配置的):
“settings”: {
“index”: {
“refresh_interval”: “3s”,
“mapping.total_fields.limit”: 2000,
“number_of_shards”: “1”,
“number_of_replicas”: 0
}
},
或:
{
“index”: {
“mapping.total_fields.limit”: 2000
}
}
参考:
【异常】使用Elasticsearch的REST Client的An HTTP line is larger than 4096 bytes
elasticsearch-py 解决 too_long_frame_exception 问题
ElasticSearch异常ElasticSearch异常 too_long_frame_exc4096 reason:An HTTP line is larger than 4096 bytes