我正在尝试学习GO语言。在我的小项目中,建立 Cassandra DB 连接,但创建 session 需要更多时间。
我想创建持久连接,以便从下一次点击开始,连接时间将等于可以忽略不计。
有什么方法可以创建持久连接吗?
Cassandra 连接代码如下:
cluster := gocql.NewCluster("cluseter_ip")
pass := gocql.PasswordAuthenticator{"username", "password"}
cluster.Keyspace = "keyspace_name"
cluster.Authenticator = pass
cluster.Consistency = gocql.One
cluster.Port = 9042 // default port
cluster.NumConns = 1
session, _ := cluster.CreateSession()
最佳答案
var session *gocql.Session
func getCluster() *gocql.ClusterConfig {
cluster := gocql.NewCluster("cluseter_ip")
pass := gocql.PasswordAuthenticator{"username", "password"}
cluster.Keyspace = "keyspace_name"
cluster.Authenticator = pass
cluster.Consistency = gocql.One
cluster.Port = 9042 // default port
cluster.NumConns = 1
return cluster
}
func initSession() error {
var err error
if session == nil || session.Closed() {
session, err := getCluster().CreateSession()
}
return err
}
现在,在使用 session 之前,请调用 initSession()
并在使用之前检查是否有错误。像这样的东西应该有效。如果您的应用程序是多线程的,请确保同步 initSession api。
关于go - 如何用GO语言创建持久的cassandra连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38981452/