一、什么是服务网关
服务网关 = 路由转发 + 过滤器
1、路由转发:接收一切外界请求,转发到后端的微服务上去;
2、过滤器:在服务网关中可以完成一系列的横切功能,例如权限校验、限流以及监控等,这些都可以通过过滤器完成(其实路由转发也是通过过滤器实现的)。
二、为什么需要服务网关
上述所说的横切功能(以权限校验为例)可以写在三个位置:
每个服务自己实现一遍
写到一个公共的服务中,然后其他所有服务都依赖这个服务
写到服务网关的前置过滤器中,所有请求过来进行权限校验
第一种,缺点太明显,基本不用;
第二种,相较于第一点好很多,代码开发不会冗余,但是有两个缺点:
由于每个服务引入了这个公共服务,那么相当于在每个服务中都引入了相同的权限校验的代码,使得每个服务的jar包大小无故增加了一些,尤其是对于使用docker镜像进行部署的场景,jar越小越好;
由于每个服务都引入了这个公共服务,那么我们后续升级这个服务可能就比较困难,而且公共服务的功能越多,升级就越难,而且假设我们改变了公共服务中的权限校验的方式,想让所有的服务都去使用新的权限校验方式,我们就需要将之前所有的服务都重新引包,编译部署。
而服务网关恰好可以解决这样的问题:
将权限校验的逻辑写在网关的过滤器中,后端服务不需要关注权限校验的代码,所以服务的jar包中也不会引入权限校验的逻辑,不会增加jar包大小;
如果想修改权限校验的逻辑,只需要修改网关中的权限校验过滤器即可,而不需要升级所有已存在的微服务。
所以,需要服务网关!!!
三、服务网关技术选型
引入服务网关后的微服务架构如上,总体包含三部分:服务网关、open-service和service。
1、总体流程
2、引入网关的注意点
3、服务网关基本功能
上述功能是网关的基本功能,网关还可以实现以下功能:
4、技术选型
笔者准备自建一个轻量级的服务网关,技术选型如下:
2009年,伯克利发表关于云计算视点的论文,认为云计算正在快速变为商业现实。201...
2017年7月7日——7月9日,在全球极具影响力的2017GDS第二届全球 域名 峰会在厦门...
来源:香港国际仲裁中心 HKIAC 活动详情 日 期:2020年10月12日 语 言:中文普通...
法制晚报·看法新闻(记者 于忠洋)含有“tianfuhao”的网站 域名 ,打开后展示...
操作场景 本节为您介绍通过控制台提供的CloudShell登录云服务器的操作步骤。 登...
前言 话不多说,这篇文章主要讲述如何从0到1搭建一款适用于Vue.js的自定义配置视...
单例模式 这天,当我聚精会神的在想代码逻辑框架的时候,忽然一阵尖锐的巴掌与我后...
作者 | fanux.中弈 来源 | 阿里巴巴云原生公众号 什么是集群镜像 ? 顾名思义,和...
基本数据类型转换1. 自动类型转换 //演示自动转换 int num = 'a';//ok char - in...
操作场景 您可以基于裸金属服务器实例创建私有镜像,将实例的系统盘数据完整地复...