课程进度 89% · 第21/23章第21/23章 · 标签 1/2
— 1 —
服务注册与发现
go
1
import clientv3 "go.etcd.io/etcd/client/v3"
2
cli, _ := clientv3.New(clientv3.Config{Endpoints: []string{"localhost:2379"}})
3
// 注册服务
4
cli.Put(context.Background(), "/services/user-api", "localhost:8080")
5
// 发现服务
6
resp, _ := cli.Get(context.Background(), "/services/user-api")
7
for _, ev := range resp.Kvs { fmt.Println(string(ev.Value)) }
— 2 —
RPC与gRPC
go
1
// proto定义
2
service UserService {
3
rpc GetUser (UserRequest) returns (UserResponse);
4
}
5
// 服务端
6
type server struct{ pb.UnimplementedUserServiceServer }
7
func (s *server) GetUser(ctx context.Context, req *pb.UserRequest) (*pb.UserResponse, error) {
8
return &pb.UserResponse{Name: "Tom"}, nil
9
}
etcdgRPCprotobuf服务注册发现