2016-08-16 73 views
1

我在学习GO语言。在我的小型项目中,制作Cassandra DB连接,但需要更多时间来创建会话。如何在GO语言中创建持续的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() 

回答

3
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 
} 

现在使用会话之前,请拨打initSession()和使用它之前检查错误。像这样的东西应该工作。如果您的应用程序是多线程的,请确保同步initSession API。

+0

谢谢,它的工作:-) – Daisy