我有2个Elasticsearch服务器。在我的Rails应用程序上,我可以在运行时更改与Elasticsearch服务器的连接吗?
例如,
-如果用户1登录该应用,则它应连接到elasticsearch服务器1
-如果用户2登录该应用,则它应连接到elasticsearch服务器2
谢谢
最佳答案
创建连接时可以使用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)
Randomize hosts doc
Here you can read about与轮循机制不同的主机选择策略。您可以实现自己的想法。
关于ruby-on-rails - 我们可以在运行时动态更改与Rails App上的Elasticsearch服务器的连接吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59154644/