首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么elasticserach-rails突然引发了Faraday::ConnectionFailed (执行过期)?

为什么elasticserach-rails突然引发了Faraday::ConnectionFailed (执行过期)?
EN

Stack Overflow用户
提问于 2019-06-10 15:20:01
回答 2查看 2.4K关注 0票数 4

我通过elasticsearch-model和elasticsearch-rails gem在Rails应用程序中使用了Elasticsearch。

以前一切正常,但在一些更新之后,每当我尝试与远程集群(AWS Elasticsearch)交互时,都会收到连接失败错误。

代码语言:javascript
运行
复制
> MyModel.__elasticsearch__.create_index! force: true
=> Faraday::ConnectionFailed (execution expired)

我正在努力找出是什么导致了这个连接错误。在搜索了类似的问题后,我调整了超时时间,并尝试了http、https和裸urls的各种组合,但都没有成功。

调试此连接错误的合理方法是什么?

我的Elasticsearch是这样初始化的。

代码语言:javascript
运行
复制
#initializers/elasticsearch.rb


require 'faraday_middleware'
require 'faraday_middleware/aws_sigv4'

credentials = Aws::Credentials.new(
  ENV.fetch('AWS_ACCESS_KEY_ID'),
  ENV.fetch('AWS_SECRET_ACCESS_KEY')
)

config = {
  url: ENV.fetch('AWS_ELASTICSEARCH_URL'),
  retry_on_failure: true,
  transport_options: {
    request: { timeout: 10 }
  }
}


client = Elasticsearch::Client.new( config ) do |f|
  f.request :aws_sigv4, credentials: credentials, service: 'es', region: ENV.fetch('AWS_ELASTICSEARCH_REGION')
end


Elasticsearch::Model.client = client
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-17 08:30:55

事实证明,这个问题有两个部分。

首先,如上所述,Elasticsearch::客户端使用默认的ES端口9200。我的ES托管在AWS上,似乎没有公开此端口。

修复这个问题后,我遇到了第二个问题(我怀疑这个应用程序更有针对性)。我开始收到一个Faraday::ConnectionFailed (end of file)错误。我不知道是什么原因导致了这个问题,但是用hostscheme配置客户端解决了这个问题。

我的最终配置如下:

代码语言:javascript
运行
复制
#initializers/elasticsearch.rb


# ...

config = {
  host: ENV.fetch('AWS_ELASTICSEARCH_URL'),
  port: 443,
  scheme: "https",
  retry_on_failure: true,
  transport_options: {
    request: { timeout: 10 }
  }
}

client = Elasticsearch::Client.new( config ) do |f|
# ...

注意:AWS_ELASTICSEARCH_URL必须返回一个无协议的网址。

票数 10
EN

Stack Overflow用户

发布于 2019-06-10 18:15:37

这是因为版本问题。使用此gem 'elasticsearch-model', '~> 5'

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56522121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档