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

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

帮助go-zero开发者聚合api 一、go-zero 微服务整体架构1、微服务的基本架构2、go-zero 微服务的 apiauthrpc.api 文件routes.go 文件 二、本地开发的痛点1、本地多个端口开启的服务2、apifox、postman 三、caddy1、mac下caddy安装2、配置我们自己的caddyfile1)创建我们的caddyfile2)配置caddy反向代理3)启动caddy4)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启动文档

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/993913.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存