【问题标题】:How to connect to Cassandra on Google Cloud?如何连接到 Google Cloud 上的 Cassandra?
【发布时间】:2021-11-10 17:00:51
【问题描述】:

我目前正在开发一个带有 Go api 的项目。它与 Google Cloud 服务器上的 Cassandra 进行通信。

问题是当我尝试向 Cassandra 发出请求时,Go 返回了几个错误。经过多次测试,我认为问题出在 Go 和 Cassandra 之间的连接不起作用。

是否有安全检查来建立连接?还是我只是在代码中犯了一个错误?

我使用gocql 连接到 Cassandra。这是 Go 连接脚本和调用 Cassandra 的请求。

    type DBConnection struct {
        cluster *gocql.ClusterConfig
        session *gocql.Session
    }
    
    var connection DBConnection
    
    func SetupDBConnection() {
        connection.cluster = gocql.NewCluster(google cloud server adress)
        connection.cluster.Consistency = gocql.Quorum
        connection.cluster.Keyspace = "keyspace name"
        connection.session, _ = connection.cluster.CreateSession()
    }
    
    func ExecuteQuery(query string, values ...interface{}) {
        connection.session.Query(query).Bind(values...).Exec()
    }

go cql 重新运行此错误:

gocql : 不可能的 de créer la session : 控制 : 不可能的 de se 连接器 aux hôtes initiaux : composez tcp xx.xxx.xxx.xxx:9042 : délai d'attente d'e/s

这是我的谷歌云配置屏幕

这里是我的盒子打开端口的屏幕

【问题讨论】:

  • Cassandra 在 Compute Engine 虚拟机上运行,​​是吗?应用程序是否在 GCP 之外运行?如果是这样,您是否更改了 VM 的防火墙规则以打开 Cassandra 需要的端口?
  • 是的,cassandra 与 go 在不同的机器上,但是如何知道 cassandra 需要哪个端口? @GabeWeiss
  • cassandra.apache.org/doc/latest/cassandra/faq/…。除非配置是自定义的。

标签: go google-cloud-platform cassandra


【解决方案1】:

不知道你遇到了什么错误很难回答。

如果您的 Go 应用在与 Cassandra 节点不在同一子网的计算机上运行,​​您需要将 Cassandra 配置为使用计算实例的公共 IP,以便您的应用可以访问它们。这些是cassandra.yaml 中的相关属性:

listen_address: private_ip
rpc_address: public_ip

客户端/应用程序实例使用端口rpc_port(默认为9042)上的rpc_address 连接到Cassandra 节点,因此它需要是可公开访问的IP 地址。

您还需要确保 GCP 访问规则允许从运行您的应用的机器到计算实例的流量。

【讨论】:

  • @EricRamirez 谢谢你的提示,有人做了一个和我一样配置的堆栈 这里是堆栈链接:stackoverflow.com/questions/69210333/…
  • 能否请您用错误+堆栈跟踪的详细信息更新您的原始帖子?它会让我更好地了解问题所在。干杯!
  • @EricRamirez 我刚刚用所有缺失的信息更新了堆栈
  • 从你运行 Go 应用程序的机器,你能 telnet 到端口 9042 上的 C* 节点吗?
  • 这告诉我两台机器之间没有连接,因此您需要为 GCP 计算实例创建访问规则。这不是 C* 问题。干杯!
猜你喜欢
  • 2019-07-20
  • 2019-07-11
  • 2020-02-23
  • 2015-03-12
  • 2019-08-05
  • 2021-03-27
  • 2021-07-18
  • 2017-01-07
  • 1970-01-01
相关资源
最近更新 更多