添加带远程代理的分布式表

要理解如何添加带远程代理的分布式表,首先需要对分布式表有一个基本的了解。本文将重点介绍如何使用分布式表作为创建 Manticore 实例集群的基础。

下面是一个如何将数据分布到4台服务器上的示例,每台服务器服务于一个分片:

‹›
  • ini
ini
📋
table mydist {
          type  = distributed
          agent = box1:9312:shard1
          agent = box2:9312:shard2
          agent = box3:9312:shard3
          agent = box4:9312:shard4
}

在服务器故障的情况下,分布式表仍然可以工作,但来自故障分片的结果将会缺失。

现在我们添加了镜像,每个分片在2台服务器上都有副本。默认情况下,主节点(带有分布式表的 searchd 实例)会随机选择其中一个镜像。

选择镜像的模式可以通过ha_strategy设置来配置。除了默认的 random 模式外,还有 ha_strategy = roundrobin

基于延迟加权概率的更高级策略包括 noerrorsnodeads。这些策略不仅排除有问题的镜像,还监控响应时间并进行负载均衡。如果某个镜像响应较慢(例如,由于其上运行了一些操作),它将收到较少的请求。当该镜像恢复并提供更好的响应时间时,它将收到更多请求。

‹›
  • ini
ini
📋
table mydist {
          type  = distributed
          agent = box1:9312|box5:9312:shard1
          agent = box2:9312:|box6:9312:shard2
          agent = box3:9312:|box7:9312:shard3
          agent = box4:9312:|box8:9312:shard4
}
Last modified: August 28, 2025