本仓库旨在提供面向Go-Micro生产环境的快速开发包。项目结合维护者们十余年的工作经验,不同领域的实战沉淀,一切为了缩短大家的选型、开发周期。
- 自定义micro网关
-
JWT
认证 -
Casbin
鉴权 - Tracing
- RequestID
- Metrics
- Access Log
- ...
-
- 网关选择
- micro api
- endpoint
- proxy
- rpc
- micro web
- gin
- echo
- iris
- micro api
- 配置中心
- 前后端分离
console
- 参数验证
- 领域驱动
- 整洁架构
- ORM
- gorm
- xorm
- 发布
- 灰度
- 蓝绿
- 部署
- K8S
- helm
- Docker
- K8S
- 安全
- CICD
- Jenkins
- 基础服务
- 日志收集
stdout
标准输出log.file
日志文件- log-pilot
- 监控告警
- Prometheus
- Grafana
- Tracing
- Jaeger
- 日志收集
- ...
├── app 应用,API聚合、Web应用
│ ├── console 控制台
│ │ ├── api go.micro.api.*,API
│ │ └── web go.micro.web.*,Web,集成gin、echo、iris等web框架
│ ├── mobile 移动端
│ └── openapi 开放API
├── deploy 部署
│ ├── docker
│ └── k8s
├── doc 文档资源
├── gateway 网关,自定义micro
├── pkg 公共资源包
└── srv 基础服务
├── account 账户服务,领域模型整洁架构示例
│ ├── domain 领域
│ │ ├── model 模型
│ │ ├── repository 存储接口
│ │ │ └── persistence ①存储接口实现
│ │ └── service 领域服务
│ ├── interface 接口
│ │ ├── handler micro handler接口
│ │ └── persistence ②存储接口实现
│ ├── registry 依赖注入,根据使用习惯,一般Go中不怎么喜欢这种方式
│ └── usecase 应用用例
│ ├── event 消息事件
│ ├── service 应用服务
├── example micro srv不同场景示例
└── pb 基础服务协议统一.proto
TODO
领域模型&整洁架构参考
自定义micro
工具,网关插件
TODO
- Web应用
app/console/web
控制台
- 聚合API
app/console/api
控制台
- 基础服务
srv/account
账户
$ cd {指定服务目录}
# 默认mdns注册中心
$ make build run
# 使用etcd注册中心
$ make build run registry=etcd
$ make build # 编译
$ make run # 运行
$ make run registry=etcd transport=tcp # 运行,指定registry、transport
$ make build run # 编译&运行
$ make build run registry=etcd transport=tcp # 编译&运行,指定registry、transport
$ make docker tag=xxx/xxx:v0.0.1