整合golang开源框架搭建的微服务,旨在快速搭建稳定高效的开发平台
- HTTP Server:基于echo框架设计,集成 限流 熔断 请求日志 中文验证器 等中间件, 参考jupiter.GRPCProxyWrapper封装grpc.UnaryHandler转化为echo.HandleFunc;
- RPC Server:基于官方gRPC开发,集成discovery模块支持服务发现功能,基于gogo/protobuf生成pb.go文件;
- Cache:Redis封装go-redis框架;
- DB:Mysql采用gorm框架,ES,Tidb,Hbase还待开发;
- Config:采用viper,配合consul K/V 作为远程配置中心,可实现配置版本管理和更新;
- Log:采用zap的field实现高性能日志库,并结合 filebeat elk 实现远程日志管理;
- 全链路trace基于elastic APM,支持(gRPC/HTTP/MySQL/Redis),集群接入linkerd服务网格化后逐步替换;
https://github.com/xulichen/halfway_demo
├── README.md
├── doc
│ ├── example.yaml
│ └── version.md
├── go.mod
├── go.sum
├── pkg
│ ├── cache
│ │ └── redis.go
│ ├── config
│ │ ├── base.go
│ │ ├── config.go
│ │ ├── config_test.go
│ │ └── redis.go
│ ├── consts
│ │ ├── consts.go
│ │ └── errors.go
│ ├── db
│ │ └── mysql.go
│ ├── discovery
│ │ ├── consul
│ │ │ ├── consul.go
│ │ │ └── resolver.go
│ │ └── discovery.go
│ ├── log
│ │ └── log.go
│ ├── net
│ │ ├── http
│ │ │ ├── client.go
│ │ │ ├── config.go
│ │ │ ├── errors
│ │ │ │ └── error.go
│ │ │ ├── http.go
│ │ │ ├── middleware
│ │ │ │ ├── circuit_breaker.go
│ │ │ │ ├── echo_logger.go
│ │ │ │ ├── rate_limit.go
│ │ │ │ ├── recover.go
│ │ │ │ └── validate.go
│ │ │ └── server.go
│ │ └── rpc
│ │ ├── client.go
│ │ ├── config.go
│ │ ├── middleware
│ │ │ └── validator.go
│ │ └── server.go
│ └── utils
│ ├── common.go
│ └── validator.go
├── test
│ └── test.md
├── third_party
└── tools
└── tools.md
- 基于cobra开发tools工具包,支持命令行生成demo文件
- 基于protobuf文件生成demo
- 项目优化,完成@@TODO