[英]How to connect to an EC2 cassandra instance in ruby
我是Cassandra的新手,所以我按照本指南介绍了如何在EC2实例上设置Cassandra。 我已经完成所有设置并准备就绪,但是由于某种原因,我无法从ruby进行连接。 这是我一直在尝试的方法:
require 'cassandra'
client = Cassandra.new('PERSON', 'ec2-xx-xx-xxx-xxx.compute-1.amazonaws.com:9160')
# =>
# <Cassandra:0x100cda3b0
# @auto_discover_nodes = true,
# @column_name_class = {},
# @column_name_maker = {},
# @is_super = {},
# @sub_column_name_class = {},
# @sub_column_name_maker = {},
# attr_accessor :keyspace = "PERSON",
# attr_reader :servers = [
# [0] "ec2-xx-xx-xxx-xxx.compute-1.amazonaws.com:9160"
# ],
# attr_reader :thrift_client_class = ThriftClient < AbstractThriftClient,
# attr_reader :thrift_client_options = {
# :transport_wrapper => Thrift::FramedTransport < Thrift::BaseTransport,
# :thrift_client_class => ThriftClient < AbstractThriftClient,
# :protocol => Thrift::BinaryProtocolAccelerated < Thrift::BinaryProtocol
# }
# >
然后,当我尝试使用客户端时,出现此错误:
client.keyspaces
#=> ThriftClient::NoServersAvailable: No live servers in [ec2-xx-xx-xxx-xxx.compute-1.amazonaws.com:9160].
我可以通过SSH进行连接,所以我不确定在这里做错了什么。
更新:
我的安全组包括:
端口: 9160
通讯协定: tcp
来源: sg-xxxxxxxx
与Cassandra服务器的连接“源”在哪里?
您使用的安全组仅向组sg-xxxxxxxx中的实例打开端口9160。 如果您尝试从其他任何地方(例如外部世界)进行连接,那么您将不会成功。
有两件事要检查:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.