登录
首页 >  Golang >  Go问答

GoCQL的Session对象如何进行连接测试类似于Redis的PING方法?

来源:stackoverflow

时间:2024-02-18 14:30:25 456浏览 收藏

在Golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天golang学习网就整理分享《GoCQL的Session对象如何进行连接测试类似于Redis的PING方法?》,聊聊,希望可以帮助到正在努力赚钱的你。

问题内容

使用 gocql 库创建了 cassandra 集群。

func CreateCassandraCluster(host string) (*gocql.Session, error) {
cluster := gocql.NewCluster(host)
cluster.ConnectTimeout = time.Second * 10
cluster.DisableInitialHostLookup = true
session, err := cluster.CreateSession()
if err != nil {
return session, err
}
return session, nil
}

我的目标是创建一个以 *gocql.session 作为参数的函数,该函数将在传递任何 cassandra 集群的会话时检查它是否已连接? 对于 redis,我们有 ping 查询来确定 redis 是否已连接,对于使用 gocql 的 cassandra 是否有类似的操作?


正确答案


这看起来与您昨天问过的问题相同,但我现在似乎找不到它,所以我想知道您是否删除了它。

对我来说,你想要实现的目标并不明显。对于 Cassandra 而言,检查会话是否已连接并没有什么帮助。

当驱动程序第一次建立与集群的连接时,它使用您在 NewCluster() 中传递的主机进行初始连接,以发现其余节点和集群拓扑(机架配置、数据中心) ),然后建立到节点的连接。

如果连接失败,驱动程序中的默认策略足够智能,可以自动重新连接,因此重复此功能是没有意义的。

正如我在您的其他问题中所说,如果您的最终目标是监控 Cassandra 集群的运行状况,您最好使用免费的开源工具,例如 Metric Collector for Apache Cassandra (MCAC)。干杯!

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《GoCQL的Session对象如何进行连接测试类似于Redis的PING方法?》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>