在此代码中
func InitDB(keyspace string) (*gocql.Session, error) {
//**********************************************************************************
// connect to the Cassandra cluster
//**********************************************************************************
cluster := gocql.NewCluster("127.0.0.1")
cluster.Keyspace = keyspace
cluster.Consistency = gocql.Quorum
cqlSession, err := cluster.CreateSession()
if err != nil {
log.Println("CreateSession failed:", err)
return nil, errors.New("Can't connect to DB")
}
// fmt.Println("Cassandra opened")
return cqlSession, nil
}
如果键空间不存在,gocql将两个日志消息打印到stdout:
2018/12/10 18:24:42 error: failed to connect to 127.0.0.1:9042 due to error: Keyspace 'qwerty' does not exist
2018/12/10 18:24:42 error: failed to connect to 127.0.0.1:9042 due to error: Keyspace 'qwerty' does not exist
这些行是由
生成的Logger.Printf("error: failed to connect to %s due to error: %v", pool.addr, err)
connectionpool.go
中的有没有一种方法可以消除这些消息,而无需从gocql代码中进行编辑?他们混淆了我们的CI测试服务器。
我们在单元测试中编码了一个明确的CreateSession故障,因此请确保上游代码可以正确处理连接故障。