yuanrenguang715 / starter-kit

Go-Micro 快速开发包

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Micro 快速开发工具包项目进行中

本仓库旨在提供面向Go-Micro生产环境的快速开发包。项目结合维护者们十余年的工作经验,不同领域的实战沉淀,一切为了缩短大家的选型、开发周期。

目录

目标

架构设计

目录结构

├── 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

领域模型&整洁架构参考

快速开始

Kubernetes环境

运行网关

自定义micro工具,网关插件

编译及运行

gateway

Docker运行

TODO

运行服务

  • Web应用
    • app/console/web控制台
  • 聚合API
    • app/console/api控制台
  • 基础服务
    • srv/account账户
$ cd {指定服务目录}

# 默认mdns注册中心
$ make build run

# 使用etcd注册中心
$ make build run registry=etcd

Makefile

$ 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

About

Go-Micro 快速开发包


Languages

Language:Go 89.7%Language:Makefile 7.3%Language:Shell 1.8%Language:Dockerfile 1.2%