支持连接池的 Golang cassandra 客户端

Golang cassandra client with connection pool support

我们正在使用 gocql (https://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 或 golang 的任何其他 cassandra 驱动程序中合并连接?

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

It's safe for concurrent use by multiple goroutines and a typical usage scenario is to have one global session object to interact with the whole Cassandra cluster.