在elasticsearch-ruby中设置多个主机
概述
我已经建立了一个Elasticsearch集群,希望能够有效地分散查询负载。
由于我正在构建一个从Rails向Elasticsearch发送查询的系统,所以如果能够在Ruby或Rails中实现这样的便利功能的gem,我会很开心。
需要负载均衡器吗?
大多数Elasticsearch的客户端库在不需要准备负载均衡器的情况下,可以通过指定多个IP地址并进行轮询来处理。
听起来是这样的。
elasticsearch-ruby被汉化为弹性搜索-红宝石
使用这个gem来初始化Elasticsearch的客户端时,可以设置多个主机。
hosts = "192.168.0.3", "192.168.0.4", "192.168.0.5"
@client = Elasticsearch::Client.new(hosts: hosts, randomize_hosts: true)
使用`randomize_hosts`可以让主机在每次连接时随机选择。
想法
・如果在AWS VPC上部署,很容易启动ELB,所以并没有太多优点。
・应用程序需要知道位于Elasticsearch集群上的主机。
・它并不提供高级负载均衡。