Go-Kit微服务
文档 :https://github.com/go-kit/kit/
安装
go get gitHub.com/go-kit/kit
其他的框架:go-micro、kite
Go-Kit工具包集合,帮助开发者灵活自由的创建微服务体系。
文档
https://godoc.org/github.com/go-kit/kit
微服务体系的基本需求
-
HTTP REST、RPC
- 日志功能
- 限流
- API监控
- 服务注册与发现
- API网管
- 服务链路追踪
- 服务熔断
Go-Kit得三层架构
-
Transport
主要负责与HTTP、gRPC、thrift等相关的逻辑进行实现
-
Endpoint
定义Request和Response格式,并可以使用装饰器保障函数,以此来实现各种中间件嵌套。
- Service
业务类、接口等
例子
譬如有个需求: 传入用户ID,来获取用户的用户名。
UserEndpoint.go
import (
"context"
"github.com/go-kit/kit/endpoint"
)
type UserRequest struct {
Uid int `json:"uid"`
}
type UserResponse struct {
Result string `json:"result"`
}
//endpoint
func GenUserEndpoint(userService IUserService) endpoint.Endpoint {
return func(ctx context.Context, request interface{
}) (response interface{
}, err error)