本文摘自网络,作者,侵删。
建立连接,参数配置(说明:下文中golangConfig.InitConfigMap为项目启动时加载的配置文件,读取成全局的Map)
package cassandra import ( "fmt" "github.com/gocql/gocql" "time" "src/golangConfig" ) var ( // connect to the cluster CassandraSession *gocql.Session cluster *gocql.ClusterConfig CassandraSessionBatch *gocql.Batch clusterCreateSessionErr error CassandraInsertCql string ) func CassandraConnectInit() { CassandraInsertCql = "INSERT INTO " + golangConfig.InitConfigMap["cassandraTable"].(string) + " (srcIp, .....,uuid) VALUES (?,?,?,?,?,?,?,?,?,?,?,?) " cluster = gocql.NewCluster() cluster.Keyspace = golangConfig.InitConfigMap["cassandraKeyspace"].(string) hosts := []string{golangConfig.InitConfigMap["cassandraServiceUrl"].(string)} cluster.Hosts = hosts cluster.ConnectTimeout = golangConfig.InitConfigMap["cassandraConnectTimeout"].(time.Duration) cluster.Timeout = golangConfig.InitConfigMap["cassandraTimeout"].(time.Duration) cluster.Consistency = gocql.Quorum cluster.NumConns = golangConfig.InitConfigMap["cassandraNumConns"].(int) cluster.Consistency = gocql.One CassandraSession, clusterCreateSessionErr = cluster.CreateSession() if clusterCreateSessionErr != nil { panic(clusterCreateSessionErr) } } func CassandraSessionBatchInit() *gocql.Batch { CassandraSessionBatch = CassandraSession.NewBatch(gocql.UnloggedBatch) return CassandraSessionBatch } func InsertCassandraMany(batch1 *gocql.Batch) { if err := CassandraSession.ExecuteBatch(batch1); err != nil { fmt.Println("execute batch:", err) } }
连接初始化,在Main方法中调用
dbwrite.CassandraInit()
相关阅读 >>
【提问】Golang的ide在同一个目录下,函数调用undifined,求大佬告知如何设置run kind
更多相关阅读请进入《Go》频道 >>
Go语言101
一个与时俱进的Go编程知识库。