2

我们正在使用gocqlhttps://github.com/gocql/gocql)驱动程序从我们的 golang 服务器连接到 Cassandra。对于每个 http 请求,我们都在创建一个新会话并将行插入到 cassandra。我们认为为每个请求创建一个会话非常耗费资源。

典型代码

func NewSession() (*gocql.Session, error) {
    config := NewClusterConfig()
    if config == nil {
        return nil, &CassandraError{"Oops! Cluster initialization failed."}
    }
    return config.CreateSession()
}

有没有办法将连接池gocql或任何其他 cassandra 驱动程序用于 golang?

4

1 回答 1

5

你不需要游泳池。创建一个全局Session. 来自https://godoc.org/github.com/gocql/gocql#Session

多个 goroutine 并发使用是安全的,典型的使用场景是让一个全局会话对象与整个 Cassandra 集群进行交互。

于 2017-03-06T11:36:57.730 回答