gateway网关详解_网关和网桥的定义

gateway网关详解_网关和网桥的定义3.5.Gateway网关的概念之前的操作,我们有了管理他的配置中心和注册中心。下一步我们就要配置网关了。于是,问题就要回到什么是网关?以及为什么要配置网关上来了。先聊聊为什么要配置网关。注册中心相当于对各种服务进行调度,把他们安排的明明白白的。但注册中心能力再打,他也没办法安置前端的请求,让他们一一入座,也没办法对一些恶意请求进行拦截。问题就出现了,前端服务此时只能自己在配置里改变请求的位置,而且,每次改变请求就要更改配置,重新上线。恶意请求也无法拦截。这显然是不合理的。于是,网关出现了。


Jetbrains全系列IDE稳定放心使用

3.5.Gateway网关的概念

之前的操作,我们有了管理他的配置中心和注册中心。下一步我们就要配置网关了。

于是,问题就要回到什么是网关?以及为什么要配置网关上来了。

先聊聊为什么要配置网关。

注册中心相当于对各种服务进行调度,把他们安排的明明白白的。但注册中心能力再打,他也没办法安置前端的请求,让他们一一入座,也没办法对一些恶意请求进行拦截。

问题就出现了,前端服务此时只能自己在配置里改变请求的位置,而且,每次改变请求就要更改配置,重新上线。

恶意请求也无法拦截。

这显然是不合理的。

于是,网关出现了。

网关是通过断言(Predicate)对前端请求进行管理的,以及拦截器(Filter)对恶意请求进行拦截的东西。它的出现就恰好解决了我们刚才提到的问题。

常用的网关有zuul &linked以及我们今天的主角Spring-Cloud Gateway。

详细

  • Gateway网关的三大核心

  • Route(路由): The basic building block of the gateway. It is defined by an ID, a destination URI, a collection of predicates断言, and a collection of filters. A route is matched if the aggregate predicate is true.发一个请求给网关,网关要将请求路由到指定的服务。路由有id,目的地uri,断言的集合,匹配了断言就能到达指定位置,

  • Predicate(断言): This is a Java 8 Function Predicate. The input type is a Spring Framework ServerWebExchange. This lets you match on anything from the HTTP request, such as headers or parameters.就是java里的断言函数,匹配请求里的任何信息,包括请求头等。根据请求头路由哪个服务

  • Filter(拦截器): These are instances of Spring Framework GatewayFilter that have been constructed with a specific factory. Here, you can modify requests and responses before or after sending the downstream request.过滤器请求和响应都可以被修改。

工作原理图

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/183154.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C语言代码的换行_c语言怎么换行输出

    C语言代码的换行_c语言怎么换行输出分两种情况:1.预处理:把一个预处理指示写成多行要用“\”续行,因为根据定义,一条预处理指示只能由一个逻辑代码行组成。2. 正常程序:一行写不下:把C代码写成多行则不必使用续行符,因为

    2022年8月3日
  • 用JIRA、CVS、XPlanner、WIKI来进行项目管理

    用JIRA、CVS、XPlanner、WIKI来进行项目管理

    2021年5月7日
  • list转有序map「建议收藏」

    list转有序map「建议收藏」publicstatic<KextendsComparable<?superK>,V>Map<K,V>sortByKey(Map<K,V>map){ Map<K,V>result=newLinkedHashMap<>(); map.entrySet().stream() .sorted(Map.Entry.<K,V>c..

    2022年9月23日
  • informix数据库建表语句_sqlserver创建数据库

    informix数据库建表语句_sqlserver创建数据库[b]1、安装[/b]a:先到IBM官网下载数据库(企业版本的12.10)b:执行id_stall程序进行安装c:默认创建实例ol_informix1210[color=darkred]d:默认创建的实例是包含了sbspace表空间的,新建的实例默认是不包含表空间的如果需要处理大对象数据(clob)的话,则需要通过onspa…

    2022年8月30日
  • Databus简介「建议收藏」

    Databus简介「建议收藏」1.背景在互联网架构中,数据系统通常分为真实数据(source-of-truth)系统,作为基础数据库,存储用户产生的写操作;以及衍生数据库或索引,提供读取和其他复杂查询操作。后者常常衍生自主数据存储,会对其中的数据做转换,有时还要包括复杂的业务逻辑处理。缓存中的数据也来自主数据存储,当主数据存储发生变化,缓存中的数据就需要刷新,或是转为无效。这样架构自然而然的一个问题就是如何保障基础数

    2022年10月17日
  • MyBatis返回复杂Map结果集「建议收藏」

    MyBatis返回复杂Map结果集「建议收藏」MyBatis返回复杂结果集key为指定属性,value为实体类结果集mybatis返回map,key为指定属性,value为实体类结果集

    2022年10月4日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号