我有三个节点泊坞窗群加上一个外部的MySQL服务(群外)。 我在golang和GRPC的API编程网关微服务。 我有两个问题。
第一个问题是,当我推的更新服务与docker swarm update --image ... myservice
我得到我从每个微服务API网关错误transport is closing
了三个请求到网关。 (我假设每个任务需要重新连接上的每个服务?)我怎样才能解决这个问题? 每个服务都有update-delay
设置为30s
和update-parallelism
设置为1
。 不应API网关保持连接到每一个服务,如果有滚动更新?
第二个问题是一个偶像时间后(不知过了多久),我从上面的服务被关闭,我必须要做到三个请求API网关,它的工作得到了同样的问题。 任何帮助表示赞赏。 我运行Ubuntu 16.04与多克尔版本17.12.0策,建立c97c6d6和正在建设走版本go1.9.4达尔文/ AMD64
服务例如:
// listen on address
lis, err := net.Listen(network, address)
if err != nil {
log.Fatalf("failed to listen: %v", err)
}
defer lis.Close()
// create users server
s := grpc.NewServer()
pb.RegisterUsersServer(s, &server{})
// register reflection service on gRPC server.
reflection.Register(s)
// message will run after serve if err == nil
go func() {
time.Sleep(time.Second)
log.Printf("started users service on %s", address)
}()
if err := s.Serve(lis); err != nil {
log.Fatalf("failed to serve: %v", err)
}
我的API网关连接
// connect to users
usersConnection, err := grpc.Dial(usersAddress, grpc.WithInsecure())
if err != nil {
log.Fatalf("did not connect: %v", err)
}
users = userspb.NewUsersClient(usersConnection)
log.Println("connected to users")