添加用户微服务

This commit is contained in:
JACKYMYPERSON
2025-09-08 10:11:44 +08:00
parent 863e985028
commit 2811948f2e
4 changed files with 358 additions and 126 deletions

69
user-consumer/main.go Normal file
View 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)
}