今天给大家推荐一款适合入门学习使用的微服务框架go-garden。
相对于go-micro、go-zero等重量级框架,这款框架非常轻量化,使用起来非常简单,而且常见的特性都支持。
go-garden是一款面向分布式系统架构的分布式服务框架
github地址:https://github.com/panco95/go-garden
码云地址:https://gitee.com/pancoJ/go-garden
## 概念
* 为分布式系统架构的开发提供了核心需求,包括微服务的一些基础架构支持,减少开发者对微服务的基础开发,更着力于业务开发;
* 支持Http/Rpc协议,http框架使用gin,rpc框架使用rpcx;
* rpc无需protobuf,只需要定义结构体即可;
* 没有集成数据库、缓存之类的扩展,这里考虑到使用者对服务的设计可能会使用到不同的包,建议开发者自己导入这类扩展包使用;
* 不限制代码结构,只需要配置文件和几行代码就可以启动一个服务,项目的结构完全由开发者自行设计,建议大家使用脚手架工具生成项目结构。
## 特性
- **服务注册发现**
- **网关路由分发**
- **网关负载均衡**
- **Rpc/Http协议**
- **可配服务限流**
- **可配服务熔断**
- **可配服务重试**
- **可配超时控制**
- **动态路由配置**
- **集群自动同步**
- **调用安全认证**
- **分布式链路追踪**
- **统一日志存储**
- **脚手架工具**
## 快速开始
```
// 安装项目脚手架
go install github.com/panco95/go-garden/tools/garden@v1.1.4
// 创建项目
garden new my-gateway gateway
garden new my-service service
// 修改服务配置和路由配置
......
// 启动网关
go run my-gateway/main.go
// 启动服务
go run my-service/main.go
```
## 教程:基于Go Garden快速构建微服务
访问 [基于Go Garden快速构建微服务](docs/tutorial.md) 跟着一步一步学习如何使用go-garden
## 教程:代码示例
访问 [examples](examples) 查看完整示例项目
## 脚手架:快速创建按项目
访问 [tools](tools/garden) 查看脚手架使用说明
有疑问加站长微信联系(非本文作者)