微服务修炼之api网关

33 篇文章 0 订阅

概念

在微服务系统中经常是用网关将分布式系统的api发布出去,API服务网关再将服务请求路由到合适的微服务,以提供具体的服务处理。所以,API服务网关经常会通过编排多个微服务来处理一个服务请求。
在软件工程的实践中,我们经常会有一个要解决的问题:去冗余。在一个分布式系统中向权限认证等的逻辑处理就是一个很好的例子。
那么我们可以想象一下怎么解决这个问题?
让所有的服务都去实现一遍显然不可能,重复代码太多,不利于维护。那么,提供一个二方包,来集中维护呢?依然无法解决外部依赖的问题,一旦有更新,所有的pom文件都要更新重新发布。
二方包的方式不太好用,微服务的方式,访问一个服务,又不用关系版本的问题,这个公共服务相对于其他服务来说是个黑盒。那么就回到了旧问题,样板代码有没有必要入侵开发系统。

那么由此,我们设置一个网关层,外部的请求过来访问微服务接口前做一层过滤,鉴权,验证,协议转换等都交由网关层处理。而在微服务集群内部认为是授信访问,不再进行校验,来提高吞吐量。

api网关的作用:

  • 提供了一个统一入口,调用者不用关系服务架构细节。
  • 借助网关做切面开发,屏蔽细节
  • 整合异构系统,第三方系统

在生产实践中,常常是认为微服务系统内(或者说是paas系统内)是授信系统。

关注点

接口转发
过滤(鉴权,限流,资源保护)

设计思路

以springcloud生态的gateway为例,服务网关到底干了些什么。
正如文档中所说,gateway使用了spring工程的顶级生态:Spring 5, Spring Boot 2 , Project Reactor。由于异步响应的webflux是基于netty的,是不同与servlet的web容器系统。那么基于servlet的组件不见得能起作用。
在这里插入图片描述

核心在于通过一系列的api达到转发过滤的功能
在这里插入图片描述

产品

zuul
nginx
springcloud-gateway

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值