您的位置:首页 > 娱乐 > 明星 > html怎么做成网站_商城开发价格服务_推广平台网站有哪些_网络推广网站电话

html怎么做成网站_商城开发价格服务_推广平台网站有哪些_网络推广网站电话

2025/1/8 17:52:59 来源:https://blog.csdn.net/wngpenghao/article/details/144514324  浏览:    关键词:html怎么做成网站_商城开发价格服务_推广平台网站有哪些_网络推广网站电话
html怎么做成网站_商城开发价格服务_推广平台网站有哪些_网络推广网站电话

一、前言

ElasticSearch版本:8.11.1

操作环境:机器数5,规格为16核32 GB

索引名称:test

索引大小:1.5G

索引分片:1主1副

测试环境将test索引调整为2主2副。计划采用如下两种方案:

方式耗时资源占用
reindex1小时集群中有大量的写QPS,索引所占节点资源高。
_split API1分钟集群数据节点CPU使用率为78%左右,load_1m为10左右。

二、正文

1、reindex方案

1c查看原索引映射以及重建的索引是否存在

GET test/_mapping
GET test_new/_search

2)禁用原索引写入数据,验证禁用功能是否正常,如果无法写入数据,则正常。

PUT test/_settings
{"settings": {"index.blocks.write": true}
}PUT 原索引 新增数据

3)创建索引、映射、分片数量、自定义分词器

put test_new
{"settings": {"analysis": {"filter": {"search_pinyin": {"keep_joined_full_pinyin": false,"ignore_pinyin_offset": true,"none_chinese_pinyin_tokenize": true,"lowercase": true,"keep_original": true,"remove_duplicated_term": false,"keep_separate_first_letter": false,"trim_whitespace": true,"type": "pinyin","limit_first_letter_length": 16,"keep_none_chinese_in_first_letter": true,"keep_separate_chinese": true,"keep_none_chinese_in_joined_full_pinyin": false,"keep_none_chinese_together": true,"keep_first_letter": false,"keep_none_chinese": true,"keep_full_pinyin": false},"my_pinyin": {"keep_joined_full_pinyin": true,"keep_separate_chinese": true,"keep_none_chinese_in_first_letter": true,"lowercase": true,"none_chinese_pinyin_tokenize": true,"keep_original": true,"remove_duplicated_term": false,"keep_separate_first_letter": false,"keep_first_letter": true,"type": "pinyin","limit_first_letter_length": 16,"keep_full_pinyin": true}},"analyzer": {"pinyin_chinese_tokenizer": {"filter": ["search_pinyin"],"type": "custom","tokenizer": "ik_max_word"},"ik_pinyin_analyzer": {"filter": ["my_pinyin"],"type": "custom","tokenizer": "ik_max_word"}}},"index": {"number_of_shards": "2","number_of_replicas": "2"}},"mappings": {...}}

4)数据迁移(覆盖更新),可以考虑异步

POST _reindex
{"source": {"index": "test"},"dest": {"index": "test_new"}
}
  • source: 源索引
  • dest: 目标索引

4)查看当前任务

//查看任务列表
GET _tasks?actions=*reindex*&detailed
//根据任务ID查询任务状态
GET /_tasks/任务ID
GET /_tasks/TDipbgZDRWisJfNLder62g:243544
//取消任务
POST /_tasks/任务ID/_cancel
POST /_tasks/TDipbgZDRWisJfNLder62g:243544/_cancel

查看任务列表

根据任务ID查询任务状态

5)验证新索引名称是否生效,确认新索引生效且无误后,可删除旧索引,定义新索引别名为旧索引。

DELETE /test
定义别名 语法:PUT 新索引/_alias/旧索引
PUT /test_new/_alias/test

6)取消原索引禁止写入限制

PUT /test/_settings
{"settings": {"index.blocks.write": false}
}

2、_split API方案(参考:通过_split API快速拆分主分片)

1)在创建索引时指定index.number_of_routing_shards,设置索引可拆分的分片数。如果默认存在,可忽略。

PUT /test
{"settings": {"index": {"number_of_routing_shards": 1024,"number_of_shards":2}}
}

number_of_routing_shards:路由分片数,定义索引可拆分的次数或原始分片可拆分的分片数。创建索引指定该参数,要求索引主分片数必须是路由分片数的一个因数。
number_of_shards:默认因数2

2)插入数据,并且可以查询,确保正常
3)禁用原索引写入数据,验证禁用功能是否正常,如果无法写入数据,则正常。

PUT test/_settings
{"settings": {"index.blocks.write": true}
}PUT 原索引 新增数据

4)拆分原索引并配置新索引,取消新索引的禁止写入限制

POST test/_split/test_new
{"settings": {"index.number_of_shards": 2,"index.number_of_replicas": 2,"index.blocks.write": null}
}

5)通过_cat recovery API查看分片拆分进度,当无拆分分片相关的recovey,且集群状态健康,则分片拆分完成。当返回结果的index列没有待拆分的索引时,说明无拆分分片相关的recovey。

GET _cat/recovery?v&active_only

拆分完成后

6)取消原索引禁止写入限制

PUT /test/_settings
{"settings": {"index.blocks.write": false}
}


7)验证新索引名称是否生效,确认新索引生效且无误后,可删除旧索引,定义新索引别名为旧索引。

DELETE /test
定义别名 语法:PUT 新索引/_alias/旧索引
PUT /test_new/_alias/test

三、问题

1、拆分后分配在同一个数据节点内。

可能由于数据节点不够导致的

2、调整副本数不生效

在排除索引无问题之后,可以尝试以下三种方案解决:

1)尝试重新分配失败的分片

POST /_cluster/reroute?retry_failed=true


2)重启索引

--刷新索引
POST indexname/_flush
--关闭索引
POST indexname/_close
---打开索引
POST indexname/_open


3)重建索引
参考reindex方案

四、结束语

未完待续。。。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com