栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

【go-zero】go-zero开发环境 如何聚合所有api? caddy反向代理服务分发 微服务设计api聚合方法 best practice

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【go-zero】go-zero开发环境 如何聚合所有api? caddy反向代理服务分发 微服务设计api聚合方法 best practice

帮助go-zero开发者聚合api
  • 一、go-zero 微服务整体架构
    • 1、微服务的基本架构
    • 2、go-zero 微服务的 api
        • authrpc.api 文件
        • routes.go 文件
  • 二、本地开发的痛点
    • 1、本地多个端口开启的服务
    • 2、apifox、postman
  • 三、caddy
    • 1、mac下caddy安装
    • 2、配置我们自己的caddyfile
        • 1)创建我们的caddyfile
        • 2)配置caddy反向代理
        • 3)启动caddy
        • 4)caddy最佳实践
        • 5) caddy 官方文档

一、go-zero 微服务整体架构

这里只是为了说明caddy的作用,其实使用Nginx也是没问题
只是想让开发者可以更方便的管理的自己api接口,进行本地的开发调试

1、微服务的基本架构

这里只是一个简易的架构说明

2、go-zero 微服务的 api

这里随便拿出一个接口进行说明
可以看到,我们这里使用一个prefix前缀来标记我们的请求都会带有这个前缀

authrpc.api 文件

路径:/Users/ctra_wl/Desktop/simbaM/simbam-go-auth/api/auth.api

@server(
	jwt: Auth
	group: root
	prefix: simbam-auth
)
service AuthApi {
	@handler resetPasswordWithLoginReg // 登录状态下-重置密码
	get /auth/user/reset (UserResetReq) returns (CommonResp)
}
routes.go 文件

路径:/Users/ctra_wl/Desktop/simbaM/simbam-go-auth/api/internal/handler/routes.go

server.AddRoutes(
	[]rest.Route{
		{
			Method:  http.MethodGet,
			Path:    "/auth/user/reset",
			Handler: root.ResetPasswordWithLoginRegHandler(serverCtx),
		},
	},
	rest.WithJwt(serverCtx.Config.Auth.AccessSecret),
	rest.WithPrefix("/simbam-auth"),
)
二、本地开发的痛点

1、本地多个端口开启的服务

下面是2个yaml文件,可以看到每一个api服务的端口必须都不相同
(当然这里的端口名你可以随意起,因为到线上的测试和生产环境会被k8 svc接管)

2、apifox、postman

当这2个服务都启动时,我们需要配置多个端口来满足对应微服务的请求
此时如果我们想在1个端口去完成对其他的端口聚合(代理)
此时我们就需要一个网关帮我们做转发
下面caddy出场

三、caddy 1、mac下caddy安装

这里默认安装的是caddy2
即:我们要使用caddy2的语法(和1有一些稍微不同)

brew install caddy
2、配置我们自己的caddyfile

其实玩过Nginx的小伙伴对.config文件一定不陌生
这个caddyfile就是这个自定义的config
但是caddyfile 非常轻量

1)创建我们的caddyfile
# 找到我们合适的磁盘路径
vim caddyfile
2)配置caddy反向代理

解释一下,下面的代码含义

:1234 {
	reverse_proxy /simbam-auth/* 127.0.0.1:8888
	reverse_proxy /simbam-datasource/* 127.0.0.1:1068
}
  • :1234为我们开启 localhost:1234 这个web服务
  • reverse_proxy反向代理的关键字
  • 因为我们之前所有的微服务都是按模块化加上了前缀,这里可见优势的体现
  • 当请求中包含 /simbam-auth/* (*为任意值)时,转发请求到 8888 端口
  • 当请求中包含 /simbam-datasource/* (*为任意值)时,转发请求到 1068 端口
3)启动caddy

前台启动方式

caddy run --config ~/Desktop/caddyfile --adapter caddyfile

后台启动方式

caddy start --config ~/Desktop/caddyfile --adapter caddyfile

caddyfile则是我们上面自己创建的caddyfile文件

前台启动成功示意图

4)caddy最佳实践

apifox请求

127.0.0.1:8888 auth服务打印日志

5) caddy 官方文档

caddy文档链接

这里附上一份caddy启动文档

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/904751.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号