首页 > 解决方案 > Can we change connection dynamicly to Elasticsearch server on Rails App at run time

问题描述

I have 2 elasticsearch servers. On my rails app, can I change connection to the Elasticsearch servers at run time? For example, - If user 1 log in the app, it should connect to elasticsearch server 1 - If user 2 log in the app, it should connect to elasticsearch server 2

Thanks

标签: ruby-on-railselasticsearch

解决方案


您可以randomize_hosts在创建连接时使用

args = {
  hosts: "https://host1.local:9091,https://host2.local:9091",
  adapter: :httpclient,
  logger: (Rails.env.development? || Rails.env.test?) ? Rails.logger : nil,
  reload_on_failure: false,
  randomize_hosts: true,
  request_timeout: 5
}

client = Elasticsearch::Client.new(args)

随机化主机文档

在这里,您可以了解与轮询不同的主机选择策略。你可以实现你自己的想法。


推荐阅读