问题描述
我正在尝试使用 Windows 计算机上的 Go 客户端连接 DGraph 。
我已经通过使用以下docker命令由DGraph Client启动。
docker run --rm -it -p 8080:8080 -p 9080:9080 -p 8000:8000 -v ~/dgraph:/dgraph dgraph/standalone:v20.03.0
我可以通过HTTP:// localhost:8000访问dgraph UI。我能够使用dgraph UI更改模式,设置数据并向后查询。
我在Go中连接DGraph具有以下实现。
import (
"context"
"fmt"
"log"
"github.com/dgraph-io/dgo/v2"
"github.com/dgraph-io/dgo/v2/protos/api"
"google.golang.org/grpc"
)
// UserGroup type
type UserGroup struct {
UID string `json:"uid,omitempty"`
Name string `json:"name,omitempty"`
Description string `json:"description,omitempty"`
Level int `json:"level,omitempty"`
Enabled bool `json:"enabled,omitempty"`
}
// User type
type User struct {
UID string `json:"uid,omitempty"`
UserID string `json:"userId,omitempty"`
Email string `json:"email,omitempty"`
Enabled bool `json:"married,omitempty"`
UserRoles []UserGroup `json:"user.userGroups,omitempty"`
DType []string `json:"dgraph.type,omitempty"`
}
// CancelFunc type
type CancelFunc func()
// Client of dGraph
func Client() (*dgo.Dgraph,CancelFunc) {
conn,err := grpc.Dial("localhost:9080",grpc.WithInsecure())
if err != nil {
log.Fatal("While trying to dial gRPC")
}
dc := api.NewDgraphClient(conn)
dg := dgo.NewDgraphClient(dc)
return dg,func() {
if err := conn.Close(); err != nil {
log.Printf("Error while closing connection:%v",err)
}
}
}
// GetData func
func GetData() {
dg,cancel := Client()
defer cancel()
ctx := context.Background()
q := `{
q(func: eq(dgraph.type,"User")) {
dgraph.type
uid
userId
email
}
}`
resp,err := dg.NewTxn().Query(ctx,q)
if err != nil {
fmt.Println("Query error")
log.Fatal(err)
}
fmt.Println(resp)
}
但是我遇到了以下错误。
错误:代码=不可用desc =所有SubConns都在TransientFailure中,最新的连接错误:连接已关闭
不确定在这里我到底缺少什么。任何帮助将不胜感激。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)