上一篇文章我们用etcd做为服务发现组件,替换了micro默认的基于mnds的服务发现,并简单通过跟踪源码了解了服务注册以及发现的原理。这篇文章,我们来认识微服务架构中另外一个很常见的东东:API Gateway。
1、API网关是什么
我们把一个应用拆分成了一个一个的微服务后,客户端如何调用就是个问题,因为服务是部署在不同的机器上面,这样客户端(比如iOS,android,web)势必将使用很多不同的URL,API网关最主要的作用实际上就是作为一个统一的入口,所有的请求都指向网关,再由网关负责协议转换,并将请求路由到后端服务上,以下是micro github主页上关于api gateway的一张图:

除了做为统一的请求入口外,API网关还具备安全防护、限流、熔断等功能。通常大厂都有自己自研的一套网关用来接入其内部服务,比如腾讯的TGW。
micro框架也实现了基于HTTP协议的网关,用户通过http协议向网关发送请求,再由网关将请求转发给后端服务。
从安全性来讲,micro实现的这个网关支持ACME和TLS。
至于网关的性能,目前还没做过测试,不得而知,因为网关并不做特别重的逻辑,主要是负责转发请求,因此猜测中小规模的APP应该是可以支持到。
2、增加网关支持
现在我们就继续开撕代码,给我们的示例程序加个网关玩玩。
先来看看micro api的基本用法,我们再命令行输入:micro api --help,可以看到以下输出:

我们用到以下几个选项:
--address:

本文深入探讨了微服务架构中API网关的角色与功能,包括作为统一请求入口、协议转换、请求路由等核心职责,同时介绍了其在安全防护、限流、熔断等方面的应用。通过实际代码示例,展示了如何在micro框架下配置和使用API网关。
最低0.47元/天 解锁文章
275

被折叠的 条评论
为什么被折叠?



