如何使用 DevCenter 远程连接到 Cassandra

How to Connect to Cassandra Remotely Using DevCenter

我使用他们的图像在 Azure 上设置了 DataStax Cassandra 沙盒。我能够在服务器上本地 运行 OpsCenter,没有任何问题。安装是 Ubuntu,我很陌生。

根据这个 post Apache Cassandra remote access, 我应该能够将我的 rpc_address 设置为 0.0.0.0 以允许远程访问我的数据库.但是,在我的本地 Windows 8 PC 上尝试从 DevCenter 连接时,它说无法连接。

这是我的设置:

联系主机地址是我的 VM 在 Azure 中显示的虚拟 IP 地址。该端口与 cassandra.yaml 配置文件中显示的端口相同。 我没有配置任何授权,据我所知,我应该只能使用 .NET 或管理工具进行连接,但都不起作用。

我还检查了端口是否打开,据我所知:

据我所知是 9160 或 9042。

Far I know it would be either 9160 or 9042.

正如您从连接设置屏幕截图中看到的那样,DevCenter 通过 "Native Protocol." 连接到 Cassandra 这指的是本机二进制协议(除非您在 cassandra.yaml 中更改了 native_transport_port ) 在端口 9042 上运行。Thrift 通过端口 9160 连接,我不相信你可以配置 DevCenter 来连接 Thrift。

接下来,检查 cassandra.yamllisten_addressbroadcast_address 的值。至少应使用您的主机名或外部 IP 地址定义其中之一。

将您的 "Native Protocol port" 设置为 9042。然后尝试连接到您的外部 IP 地址。

编辑:

检查您的 system.log 文件并查找如下一行:

Starting listening for CQL clients on localhost/127.0.0.1:9042...

无论您看到哪个地址,都有您需要通过 DevCenter 或客户端连接到的地址。如果该行显示 127.0.0.1,则您有工作要做。

此外,这里是我过去曾帮助解决过的一个类似问题的链接:How do I connect to local cassandra db

Did either of you have to assign a public IP to your vm?

我们的(基于云的)Cassandra 服务器(在产品中)具有内部和外部 IP 地址。我明天必须仔细检查,但我们的 Cassandra 2.0 配置已将 listen_address 设置为我们的外部 (public) IP,并且 rpc_address 为空白或设置为相同。

这里有一些文档可以帮助您进行配置:

感谢所有帮助我解决这个问题的人。最终的问题是,在设置 Azure VM 时,分配的虚拟 IP 是针对云服务本身而不是虚拟机的。因此,即使看起来正确的端口已公开,您也无法从外部计算机访问它们。

更多 info about it here (但请先阅读我下面的说明,因为这在 Azure 管理控制台中更容易完成)

设置虚拟机时,您会注意到 Azure 会自动为您的 SSH 连接创建一个终结点,例如 55xxx。您将无法连接到包装盒本身所示的已配置端口 22,而是必须使用端点端口 55xxx 等。

这一点很重要,因为 Cassandra 端口 8888 (OpsCenter) 和 9042(本地传输)也是如此。

因此您可以:

  1. 为这些端口创建端点并在连接时使用它们 远程。
  2. 创建指向 VM 本身的 public IP 地址 而不是云服务。

起初我无法让端点工作,但后来让它们工作。这让我设置了一个 public IP 地址。我使用 Azure Powershell 以艰难的方式做到了这一点。这是痛苦的,需要大量研究。 但是,在花时间这样做之后,我意识到现在可以在预览控制台中完成它。只需转到 VM 上的 IP 地址设置并启用 "Instance IP Address" 选项。

然后您应该能够使用设置完成后通过浏览器返回的 IP 地址远程连接到 OpsCenter:(新 IP 地址):8888

...然后在 DevCenter 中使用新的 IP 地址和端口 9042。

如果您使用端点而不是设置 public 静态 ip (出于安全原因,您需要这样做并通过 ip 过滤器启用用户访问控制) , 那么您将希望使用这些新创建的端口号和您的虚拟 IP 地址。

其次...您需要在 cassandra.yaml 文件中将 rpc_address 设置为 0.0.0.0。