2016-05-19 3 views
2

У меня есть TCP-сервер, который пытается подключиться к базе данных Couchbase с помощью клиентской библиотеки go-couchbase, но я получаю сообщение об ошибке, указывающее, что ядро, которое я пытаюсь получить, событий ", не существует.Couchbase GoLang клиент не может найти ведро

Когда я использую официальную клиентскую библиотеку Couchbase для Go, все работает нормально.

Разница, которую я заметил между этими двумя клиентами, - это понятие «пул». Я установил этот пул как «default».

Что может привести к этому клиенту Go, не видя моего ведра?

cb, err := couchbase.Connect("http://address:port") 
if err != nil { 
     log.Fatalf("Error connecting: %v", err) 
} 

cbPool, err := cb.GetPool("default") 
if err != nil { 
    log.Fatalf("Error getting pool: %v", err) 
} 

cbBucket, err := cbPool.GetBucketWithAuth("events", "username", "password") 
if err != nil { 
    log.Fatalf("Error getting bucket: %v", err) 
} 

ответ

1

Я предполагаю, что вы получаете какую-то ошибку аутентификации. API немного запутан. GetBucketWithAuth следует назвать так:

GetBucketWithAuth («событие», «событие», «пароль»)

Причины заключается в том, что клиент хочет имя пользователя ведра и пароль ведра. Имя пользователя ведра совпадает с именем ведра.

С учетом этого я настоятельно рекомендую вам использовать gocb, а не go-couchbase. gocb является официальным клиентом Couchbase go, а go-couchbase используется только внутри Couchbase. На самом деле многие компоненты, использующие go-couchbase, начнут использовать gocb, поскольку эта библиотека намного проще в использовании и лучше организована.

https://github.com/couchbase/gocb

Смежные вопросы