添加用户微服务
This commit is contained in:
69
user-consumer/main.go
Normal file
69
user-consumer/main.go
Normal file
@@ -0,0 +1,69 @@
|
||||
// client.go
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"log"
|
||||
"time"
|
||||
|
||||
"go-micro.dev/v4"
|
||||
"go-micro.dev/v4/client"
|
||||
"go-micro.dev/v4/registry"
|
||||
"go.etcd.io/etcd/client/v3"
|
||||
)
|
||||
|
||||
type LoginRequest struct {
|
||||
Username string
|
||||
Password string
|
||||
}
|
||||
|
||||
type LoginResponse struct {
|
||||
Token string
|
||||
}
|
||||
|
||||
func main() {
|
||||
// 1. 创建 etcd 客户端
|
||||
etcdClient, err := clientv3.New(clientv3.Config{
|
||||
Endpoints: []string{"127.0.0.1:2379"},
|
||||
DialTimeout: 5 * time.Second,
|
||||
})
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer etcdClient.Close()
|
||||
|
||||
// 2. 创建注册中心
|
||||
reg := registry.NewRegistry(
|
||||
registry.Addrs("127.0.0.1:2379"),
|
||||
)
|
||||
|
||||
// 3. 创建微服务客户端
|
||||
service := micro.NewService(
|
||||
micro.Registry(reg),
|
||||
)
|
||||
service.Init()
|
||||
|
||||
// 4. 创建 RPC 客户端
|
||||
userService := micro.NewService(
|
||||
micro.Name("user.client"),
|
||||
micro.Registry(reg),
|
||||
)
|
||||
userService.Init()
|
||||
|
||||
// 5. 调用远程服务
|
||||
req := client.NewRequest(
|
||||
"user.service", // 服务名
|
||||
"UserService.Login", // 方法名
|
||||
&LoginRequest{ // 请求参数
|
||||
Username: "admin",
|
||||
Password: "1234567",
|
||||
},
|
||||
)
|
||||
|
||||
rsp := &LoginResponse{}
|
||||
if err := userService.Client().Call(context.Background(), req, rsp); err != nil {
|
||||
log.Fatal("调用失败:", err)
|
||||
}
|
||||
|
||||
log.Printf("登录成功,Token: %s", rsp.Token)
|
||||
}
|
||||
Reference in New Issue
Block a user