Skip to content

stack-labs/starter-kit

Repository files navigation

Micro 快速开发工具包

项目进行中

本仓库旨在提供面向 stack-rpc 生产环境的快速开发包。

目录

架构设计

系统架构图

业务架构图

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                 公共资源包

目标功能

开发环境

TODO

  • 本地
  • 在线
    • CICD
    • Kubernetes
    • 本地服务接入
      • Network代理 + 流量染色

部署环境

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仪表盘importmetrics/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