@@ -8,20 +8,17 @@ import (
88 "github.com/gocql/gocql"
99)
1010
11- func CassandraClient () {
11+ var (
12+ cluster * gocql.ClusterConfig
13+ session * gocql.Session
14+ )
15+
16+ func CassandraSession () * gocql.Session {
1217 fmt .Println ("Creating Cassandra session" )
13- cluster := gocql .NewCluster ("cassandra-node1:9042" )
14- // cluster.Authenticator = gocql.PasswordAuthenticator{
15- // Username: "user",
16- // Password: "password"
17- // }
18- cluster .ProtoVersion = 4
19- // cluster.Keyspace = "keyspace"
20- // cluster.Port = 29042
21- // cluster.CQLVersion = "5.0.0"
22- // cluster.ConnectTimeout = time.Second * 6
18+ cluster = gocql .NewCluster ("cassandra-node1:9042" , "cassandra-node2:9042" , "cassandra-node3:9042" )
19+ var err error
20+ cluster .Consistency = gocql .Quorum
2321 cluster .PoolConfig .HostSelectionPolicy = gocql .TokenAwareHostPolicy (gocql .DCAwareRoundRobinPolicy ("cassandra-node1" ))
24- fmt .Println ("3" )
2522 session , err := cluster .CreateSession ()
2623 if err != nil {
2724 log .Fatal (err )
@@ -31,24 +28,23 @@ func CassandraClient() {
3128 for _ , host := range cluster .Hosts {
3229 fmt .Println ("- Node:" , host )
3330 }
34- // session, err := cluster.CreateSession()
35- // if err != nil {
36- // panic(err)
37- // }
38- // defer session.Close()
39- // fmt.Println("5")
40- // fmt.Println("Connected to Cassandra Nodes:")
41- // for _, host := range cluster.Hosts {
42- // fmt.Println("- Node:", host)
43- // }
4431
4532 // Print which node is being used for a query
46- // var clusterID string
47- // iter := session.Query("SELECT release_version FROM system.local").Iter()
48- // for iter.Scan(&clusterID) {
49- // fmt.Println("Running query on:", clusterID)
50- // }
51- // if err := iter.Close(); err != nil {
52- // log.Fatal("Error closing iterator:", err)
53- // }
33+ var clusterID string
34+ iter := session .Query ("SELECT release_version FROM system.local" ).Iter ()
35+ for iter .Scan (& clusterID ) {
36+ fmt .Println ("Running query on node " , clusterID )
37+ }
38+ if err := iter .Close (); err != nil {
39+ log .Fatal ("Error closing iterator:" , err )
40+ }
41+
42+ return session
5443}
44+
45+ func Close () {
46+ if session != nil {
47+ session .Close ()
48+ fmt .Println ("Closing Cassandra session" )
49+ }
50+ }
0 commit comments