GO微服务框架

Go Garden License

Go Garden是一款面向分布式系统架构的微服务框架

概念

Go Garden为分布式系统架构的开发提供了核心需求,包括微服务的基础架构支持,例如gateway网关模块做路由分发支持,服务调用链路追踪的集成。

特性

  • 服务注册发现

  • 网关路由分发

  • 负载均衡

  • 动态配置

  • 安全认证

  • 服务重试机制

  • 分布式链路追踪

  • 可选组件:Rabbitmq、Redis、Elasticsearch

  • HTTP服务基于GIN开发,适合大部分GO开发者,简单易学轻量

快速开始

go get -u github.com/panco95/go-garden

import "github.com/panco95/go-garden"

// initialise
garden.Init()
// start the service
garden.Run(Route, Auth)

访问 examples 查看详细使用示例

基于Go Garden快速构建微服务

1. 准备工作

Go Garden基于Etcd实现服务注册发现,基于Zipkin实现服务链路追踪,所以需要成功启动必须安装好Etcd和Zipkin

  • 在这里给不熟悉的同学介绍Docker快速安装

  • 准备好一个Linux系统虚拟机,且安装好Docker

  • 启动Etcd:

docker run -it -d --name etcd -p 2379:2379 -e "ALLOW_NONE_AUTHENTICATION=yes" -e "ETCD_ADVERTISE_CLIENT_URLS=http://0.0.0.0:2379" bitnami/etcd
  • 启动Zipkin:
docker run -it -d --name zipkin -p 9411:9411 openzipkin/zipkin

2. Gateway网关服务

  • 创建quick_gateway目录后进入目录
  • 执行 go mod init 初始化一个go项目
  • 新建go程序入口文件 main.go 并输入以下代码:
package main

import (
	"github.com/panco95/go-garden"
	"github.com/gin-gonic/gin"
)

func main() {
	// server init
	garden.Init()
	// server run
	garden.Run(garden.GatewayRoute, Auth)
}

// Auth Customize the global middleware
func Auth() gin.HandlerFunc {
	return func(c *gin.Context) {
		// before logic
		c.Next()
		// after logic
	}
}
  • 安装go mod包: go mod tidy
  • 执行程序:go run main.go

许可证

Go Garden 包含 Apache 2.0 许可证

Owner
Panco
wechat:freePan_1995 qq:1129443982
Panco
Similar Resources
GO微服务框架

Go Garden Go Garden是一款面向分布式系统架构的微服务框架 概念 Go Garden为分布式系统架构的开发提供了核心需求,包括微服务的基础架构支持,例如gateway网关模块做路由分发支持,服务调用链路追踪的集成。 特性 服务注册发现 网关路由分发 负载均衡 动态配置 安全认证 服务

Dec 19, 2022