首页 文章

升级到Ruby 1.9.3后,AWS Couchbase群集上的客户端超时

提问于
浏览
0

在我们使用Ruby 1.9.3(从1.8.7)升级到Rails 3.2.8之后,我们的Couchbase客户端无法再访问我们的AWS集群(Couchbase 1.8 Community Edition) .

1.9.3p194 :011 > c = Couchbase.new("http://ec2-184-169-237-63.us-west-1.compute.amazonaws.com:8091")
=> #<Couchbase::Bucket:0x007fe12d9e6c98 "http://ec2-184-169-237-63.us-west-1.compute.amazonaws.com:8091/pools/default/buckets/default/" default_format=:document, default_flags=0x0, quiet=false, connected=true, timeout=2500000> 

1.9.3p194 :012 > c.get("hello")
Couchbase::Error::Timeout: failed to get value (key="hello", error=0x16)
    from (irb):12:in `get'
    from (irb):12
    from /Users/playmeshinc/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.8/lib/rails/commands/console.rb:47:in `start'
    from /Users/playmeshinc/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.8/lib/rails/commands/console.rb:8:in `start'
    from /Users/playmeshinc/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.8/lib/rails/commands.rb:41:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'

在管理面板上,我们甚至看不到任何到达服务器的请求 .

但是,如果我们在端口11211上使用memcache协议,一切都运行良好 . 如果我们在我们的本地couchbase集群(OSX)上尝试相同的代码和相同的调用,那么事情就可以了 .

知道可能发生了什么吗?那是因为Ruby Couchbase客户端与AWS或Ruby 1.9.3不兼容吗?

2 回答

  • 2

    实际上我想通了,那是因为AWS上的moxi客户端会返回外部机器无法访问的内部ips,这就是我从外面测试时超时的原因 .

  • 0

    Gem绝对与EC2和1.9.3兼容 . 您使用的是什么版本的couchbase gem?什么版本的libcouchbase?听起来像罪魁祸首可能是rvm或其他东西 . 我建议尝试gem卸载,然后重新安装 . 还要确保libcouchbase是最新的 .

相关问题