带连接池支持的Golang cassandra客户端
问题描述:
我们使用gocql
(https://github.com/gocql/gocql)驱动程序从我们的golang服务器连接到Cassandra。对于每个http请求,我们正在创建一个新会话并将行插入cassandra。我们觉得为每个请求创建一个会话需要非常多的资源。带连接池支持的Golang cassandra客户端
典型代码
func NewSession() (*gocql.Session, error) {
config := NewClusterConfig()
if config == nil {
return nil, &CassandraError{"Oops! Cluster initialization failed."}
}
return config.CreateSession()
}
有什么办法要集中gocql
或golang任何其他卡桑德拉驱动程序的连接?
答
你不需要游泳池。创建一个全球Session
。从https://godoc.org/github.com/gocql/gocql#Session:
它是由多个够程和一个典型的使用场景同时使用安全是有一个全局会话对象,与整个卡桑德拉集群互动。