Клиент Golang cassandra с поддержкой пула соединений

Мы используем драйвер gocql (https://github.com/gocql/gocql) для подключения к Cassandra. с нашего сервера golang. Для каждого http-запроса мы создаем новую сессию и вставляем строки в cassandra. Мы считаем, что создание сеанса для каждого запроса требует очень много ресурсов.

Типовой код

func NewSession() (*gocql.Session, error) {
    config := NewClusterConfig()
    if config == nil {
        return nil, &CassandraError{"Oops! Cluster initialization failed."}
    }
    return config.CreateSession()
}

Есть ли способ объединить соединения в gocql или любых других драйверах cassandra для golang?


person kannanrbk    schedule 06.03.2017    source источник


Ответы (1)


Вам не нужен бассейн. Создайте глобальный файл Session. Из https://godoc.org/github.com/gocql/gocql#Session:

Это безопасно для одновременного использования несколькими горутинами, и типичный сценарий использования — иметь один глобальный объект сеанса для взаимодействия со всем кластером Cassandra.

person kopiczko    schedule 06.03.2017