在我们使用 Ruby 1.9.3(从 1.8.7)升级到 Rails 3.2.8 后,我们的 Couchbase 客户端无法再访问我们的 AWS 集群(Couchbase 1.8 社区版)。
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 不兼容吗?