Micro 快速开发工具包
项目进行中
本仓库旨在提供面向Go-Micro生产环境的快速开发包。
目录
架构设计
系统架构图
业务架构图
Console示例
领域模型&整洁架构参考
目录结构
├── console 控制台示例
│ ├── account go.micro.srv.account,Account服务
│ │ ├── domain 领域
│ │ │ ├── model 模型
│ │ │ ├── repository 存储接口
│ │ │ │ └── persistence ①存储接口实现
│ │ │ └── service 领域服务
│ │ ├── interface 接口
│ │ │ ├── handler micro handler接口
│ │ │ └── persistence ②存储接口实现
│ │ ├── registry 依赖注入,根据使用习惯,一般Go中不怎么喜欢这种方式
│ │ └── usecase 应用用例
│ │ ├── event 消息事件
│ │ └── service 应用服务
│ ├── api go.micro.api.console,API服务
│ ├── pb 服务协议统一.proto
│ └── web go.micro.api.console,Web服务,集成gin、echo、iris等web框架
├── deploy 部署
│ ├── docker
│ └── k8s
├── doc 文档资源
├── gateway 网关,自定义micro
└── pkg 公共资源包
目标功能
- 自定义micro网关
-
JWT
认证
-
Casbin
鉴权
- Tracing
- RequestID
- Metrics
- Access Log
- ...
- API服务
- 网关使用默认处理器(
handler=meta
),聚合服务通过Endpoint
定义路由规则,实现统一网关管理rpc
和http
类型的聚合服务
- api
- rpc
- proxy/http/web
- 配置中心
- 前后端分离
console
- 参数验证
- 领域驱动
- ORM
- 发布
- 部署
- 安全
- CICD
- 基础服务
- ...
开发环境
TODO
部署环境
Kubernetes环境
可选服务
Jaeger
浏览器访问:http://localhost:16686/
$ docker run -d --name=jaeger -e COLLECTOR_ZIPKIN_HTTP_PORT=9411 -p5775:5775/udp -p6831:6831/udp -p6832:6832/udp -p5778:5778 -p16686:16686 -p14268:14268 -p9411:9411 jaegertracing/all-in-one:latest
Prometheus
浏览器访问:http://localhost:9090/
prometheus.yml
参考gateway
插件`metrics/prometheus.yml
$ docker run -d --name prometheus -p 9090:9090 -v ~/tmp/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
Grafana
浏览器访问:http://localhost:3000/
Grafana
仪表盘import
metrics/grafan.json
$ docker run --name grafana -d -p 3000:3000 grafana/grafana
参与贡献
代码格式
- IDE IDEA/Goland,
Go->imports
设置
- Sorting type
gofmt
-
Group stdlib imports
-
Move all stdlib imports in a single group
-
Move all imports in a single declaration