gpt4 book ai didi

python - 多个elasticsearch python客户端将批量json数据发送到单个ES集群

转载 作者:行者123 更新时间:2023-12-01 09:03:21 26 4
gpt4 key购买 nike

我计划在我的每台 ec2 服务器(大约 50-60 台 ec2 服务器)上安装 elasticsearch python 客户端,将数据发送到我的单个 ES 集群。
每个Python客户端每秒都会向ES集群发送批量json。总计 - 每秒 50/60 批量索引
每个批量 json 最多可包含约 500 个文档/约 3-4 MB 批量 json。假设我使用 20 个节点的集群 m4.large 或更多。

我的问题是

  1. ES集群如何负载均衡来自不同服务器的请求?
  2. 来自不同服务器的请求如此频繁,这会对我的系统产生什么影响?
  3. elasticsearch 与 Curl 到端点,哪个更好?

最佳答案

根据我的经验您应该使用您的特定设置对其进行测试。

这取决于:

  • 您的 ES 集群有多大
  • 您的数据库大小有多大
  • 您有多少个副本
  • 您有多少个 inode
  • 任何节点/分片感知 ID
  • 您的文档有多大
  • 您的自定义标记化/索引有多复杂
  • 您在发送文档方面是否遇到高峰
  • 集群上正在运行多少其他查询
  • 刷新间隔是多大

1.在测试运行期间查看来自服务器的数据

curl 本地主机:9200/_cat/thread_pool?v=true

node_name name                active queue rejected
prodnode bulk 0 0 0
prodnode fetch_shard_started 0 0 0
prodnode fetch_shard_store 0 0 0
prodnode flush 0 0 0
prodnode force_merge 0 0 0
prodnode generic 0 0 0
prodnode get 0 0 0
prodnode index 0 0 0
prodnode listener 0 0 0
prodnode management 1 0 0
prodnode refresh 0 0 0
prodnode search 0 0 0
prodnode snapshot 0 0 0
prodnode warmer 0 0 0

2.根据我的经验,您提到的数字应该可以通过集群进行管理。您可能面临的第一个问题:批量拒绝( really good article about this )。您的代码可以容忍它并重新发送失败的文档吗?通过设计,批量查询最好合并到单个队列,并让一个代理将它们发送到集群。如果集群无法跟上,集群将锁定它或对其进行限制。最好进行实验。

3.与索引时间和集群内通信相比,编码和网络延迟要小得多,因此您选择哪一个并不重要。

关于python - 多个elasticsearch python客户端将批量json数据发送到单个ES集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52282524/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com