项目结构更新
This commit is contained in:
76
services/user/userLogin/grpc/user-server/main.go
Normal file
76
services/user/userLogin/grpc/user-server/main.go
Normal file
@@ -0,0 +1,76 @@
|
||||
// server.go
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"go-micro.dev/v4/errors"
|
||||
"log"
|
||||
"time"
|
||||
|
||||
"go-micro.dev/v4"
|
||||
"go-micro.dev/v4/registry"
|
||||
"go.etcd.io/etcd/client/v3"
|
||||
)
|
||||
|
||||
// 定义请求和响应结构体
|
||||
type LoginRequest struct {
|
||||
Username string
|
||||
Password string
|
||||
}
|
||||
|
||||
type LoginResponse struct {
|
||||
Token string
|
||||
}
|
||||
|
||||
// UserService 实现
|
||||
type UserService struct{}
|
||||
|
||||
func (u *UserService) Login(ctx context.Context, req *LoginRequest, rsp *LoginResponse) error {
|
||||
if req.Username == "admin" && req.Password == "123456" {
|
||||
rsp.Token = "abc123"
|
||||
return nil // 返回 nil 表示成功
|
||||
}
|
||||
return errors.New("登录失败", "失败", 500) // 返回 error 表示失败
|
||||
}
|
||||
|
||||
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("创建 etcd 客户端失败:", err)
|
||||
}
|
||||
defer etcdClient.Close()
|
||||
|
||||
// 2. 创建自定义的 etcd 注册中心
|
||||
reg := registry.NewRegistry(
|
||||
registry.Addrs("127.0.0.1:2379"),
|
||||
registry.Timeout(5*time.Second),
|
||||
// 这里可以添加更多自定义配置
|
||||
)
|
||||
|
||||
// 3. 创建微服务实例
|
||||
service := micro.NewService(
|
||||
micro.Name("user.service"),
|
||||
micro.Registry(reg),
|
||||
// 注入 etcd 客户端
|
||||
micro.BeforeStart(func() error {
|
||||
return etcdClient.Sync(context.Background())
|
||||
}),
|
||||
)
|
||||
|
||||
// 4. 初始化服务
|
||||
service.Init()
|
||||
|
||||
// 5. 注册服务处理器
|
||||
if err := micro.RegisterHandler(service.Server(), new(UserService)); err != nil {
|
||||
log.Fatal("注册服务处理器失败:", err)
|
||||
}
|
||||
|
||||
// 6. 启动服务
|
||||
if err := service.Run(); err != nil {
|
||||
log.Fatal("服务启动失败:", err)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user