Skip to content

xulichen/halfway

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

halfway

Language Go Version

整合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 Server

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