簡體   English   中英

Ruby on Rails與Cassandra

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM