[英]Ruby on Rails with Cassandra
我有一個帶有4個Docker容器的主機。 在三個容器上,我設置了Cassandra節點。 在第四個容器上,我有一個正在運行的Ruby on Rails應用程序,我試圖從中連接到Cassandra集群。
嘗試連接時出現以下錯誤:
require 'cassandra'
cluster = Cassandra.cluster
irb(main):002:0> require 'cassandra'
=> true
irb(main):003:0> cluster = Cassandra.cluster
Cassandra::Errors::NoHostsAvailable: All attempted hosts failed: 127.0.0.1 (Cassandra::Errors::IOError: Connection refused - connect(2))
from /var/lib/gems/1.9.1/gems/cassandra-driver-2.1.5/lib/cassandra/future.rb:570:in `get'
from /var/lib/gems/1.9.1/gems/cassandra-driver-2.1.5/lib/cassandra/future.rb:363:in `get'
from /var/lib/gems/1.9.1/gems/cassandra-driver-2.1.5/lib/cassandra.rb:211:in `cluster'
from (irb):3
from /usr/bin/irb:12:in `<main>'
在Cassandra.yaml文件中,我設置了以下內容:
cluster_name: 'MyCassandraCluster'
num_tokens: 256
seed_provider:
- class_name: org.apache.cassandra.locator.SimpleSeedProvider
parameters:
- seeds: "172.17.0.2,172.17.0.3,172.17.0.4"
listen_address: IP of the host of the containers
rpc_address: <seed ip of this instance>
請幫忙。 謝謝
嘗試指定其中一個Cassandra容器的地址或主機名。
Cassandra.cluster()
默認為localhost(127.0.0.1)
Cassandra.cluster(hosts: ['172.17.0.2','172.17.0.3','172.17.0.4'])
甚至更好的是,只需將您的RoR容器鏈接到cassandra(-- --link cassandra:cassandra
),您就可以做到:
Cassandra.cluster(hosts: ['cassandra'])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.