首页 文章

连接远程Cassandra(1.2.1)服务器

提问于
浏览
1

我在远程Windows服务器上运行Cassandra 1.2.1 . 我将yaml设置设置如下;

rpc_address:0.0.0.0 start_native_transport:true

I can 通过键入IP地址和端口号从我的笔记本电脑连接远程Cassandra服务器;

连接XXX.XX.XX.XX / 9160;

在cassandra-cli.bat上

But I can not 从我的.Net应用程序连接远程Cassandra服务器 . 我用casssandra-sharp;

XmlConfigurator.Configure();
using (ICluster cluster = ClusterManager.GetCluster("main"))
          Console.WriteLine("succeded");
ClusterManager.Shutdown();

这是App.config;

<configSections>
    <section name="CassandraSharp" type="CassandraSharp.SectionHandler, CassandraSharp" />
  </configSections>

  <CassandraSharp>
    <Cluster name="main">
      <Endpoints>
        <Server>XXX.XX.XX.XX</Server>
      </Endpoints>
    </Cluster>
  </CassandraSharp>

应用程序抛出“找不到任何有效 endpoints ”异常 . 当我在本地运行Cassandra并尝试连接时,这个代码块完美地工作 .

在远程服务器上,防火墙允许使用9160和7000端口 . 对这个问题有什么看法吗?

2 回答

  • 0

    @rs_atl是对的,这是一个连接问题 .

    如果您正在使用客户端库并要执行CQL命令,则需要设置;

    start_native_transport: true
    

    你已经做过了 . 下面只有两行,你会看到;

    native_transport_port: 9042
    

    在yaml文件中 . 这意味着您需要在防火墙上允许端口号 9042 .

    如果您还使用Azure等 Cloud 服务,请不要忘记添加 endpoints .

  • 4

    如果您的代码在本地工作但在另一台机器上不起作用,唯一合乎逻辑的结论是必须存在连接问题 .

相关问题