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 プロトコルを使用すると、すべてが正常に機能します。ローカルのソファベース クラスター (OSX) で同じコードと同じ呼び出しを試すと、問題なく動作します。

何が起こったのでしょうか?それは、Ruby Couchbase クライアントが AWS または Ruby 1.9.3 と互換性がないためですか?

4

2 に答える 2

2

実際、AWSのmoxiクライアントが外部マシンにアクセスできない内部IPを返すため、外部からテストしているときにタイムアウトになったことがわかりました。

于 2012-08-25T23:25:05.097 に答える
0

GemはEC2および1.9.3と確実に互換性があります。どのバージョンのcouchbasegemを使用していますか?そしてlibcouchbaseのどのバージョンですか?犯人はrvmか何か他のものかもしれないように聞こえます。gemをアンインストールして、再インストールすることをお勧めします。また、libcouchbaseが最新であることを確認してください。

于 2012-08-24T23:46:01.393 に答える