README ¶ halfway 整合golang开源框架搭建的微服务,旨在快速搭建稳定高效的开发平台 Features 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服务网格化后逐步替换; Demo Site https://github.com/xulichen/halfway_demo File Structure ├── 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 TODO 基于cobra开发tools工具包,支持命令行生成demo文件 基于protobuf文件生成demo 项目优化,完成@@TODO Expand ▾ Collapse ▴ Directories ¶ Show internal Expand all Path Synopsis pkg cache config consts db discovery discovery/consul @author: mongo @author: mongo log net/http net/http/errors net/http/middleware net/rpc net/rpc/middleware utils Click to show internal directories. Click to hide internal directories.