ruby-on-rails - 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
解决方案
您可以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)
在这里,您可以了解与轮询不同的主机选择策略。你可以实现你自己的想法。
推荐阅读
- java - 使用 MyBatis + H2 配置 Spring Boot 身份验证/登录
- wpf - 相对源路径问题
- python - 如何制作为用户提供角色的 Discord 机器人命令?
- multithreading - lock cmpxchg 无法按核心顺序执行线程
- javascript - ApexCharts 数据未正确呈现
- c# - Grpc.Core.Channel 和 Grpc.Net.Client.GrpcChannel 有什么区别?
- jestjs - 澄清嵌套模块中的玩笑行为
- react-native - React Native onScrollBeginDrag 对滚动不是很敏感
- java - Javafx、Maven、Hibernate、无法在第 0 行和第 0 列执行解组
- sass - 萨斯-MQ。SassError:函数在没有@return 的情况下完成