SpringCloud网关设计

1 网关概念

Gateway是在spring生态系统之上构建的API网关服务,网关是外网进入内网的入口,对内网服务起保护作用。

2 网关作用

(1)反向代理:为保护内网服务的安全,通常不会暴露内网服务ip,而是通过暴露网关ip,通过网关ip代理内网服务ip。
(2)流量控制:当系统处于高峰期时,为防止系统应访问量过大而崩溃,网关可以限制访问数量。

https://blog.csdn.net/wangleleb/article/details/104204496

https://www.cnblogs.com/xuwc/p/9123078.html

  • Nginx限流 - 通过限流可以规定一个一个地址映射每一秒可以被访问多少次,甚至是限制每一个用户(这里的用户指的是访问改地址映射的用户的IP)在规定的时间内可以访问的次数,防止用户多次操作或者是恶意请求攻击服务。
  • 网关限流 - 限定用户在只能针对某个微服务在特定的时间段内只能访问多少次,如果不加限制的会,可能会因为并发量的过大导致服务宕机,甚至引起雪崩效应。

        a.令牌桶算法, 控制发送到网络上的数据的数目,并允许突发数据的发送。

                        b.漏桶算法, 往桶中以一定速率流出水,以任意速率流入水,当水超过桶流量则丢弃,因为桶容量是不变的,保证了整体的速率。

两者主要区别在于“漏桶算法”能够强行限制数据的传输速率,而“令牌桶算法”在能够限制数据的平均传输速率外,还允许某种程度的突发传输。在“令牌桶算法”中,只要令牌桶中存在令牌,那么就允许突发地传输数据直到达到用户配置的门限,所以它适合于具有突发特性的流量。

(3)熔断:当系统中的服务出现故障,网关可以将服务降级,有请求访问时,直接访问事先准备好的降级方法,等到服务修复后,用户即可继续访问;
(4)负载均衡:可以按照不同负载均衡策略,将请求分发到不同服务上。

 

 

 3 网关三大核心

(1)路由:路由是构建网关的基本模块,它由Id,目标url,一系列断言和过滤器组成,如果断言为true,则可以匹配该路由。
(2)断言:指定路径url,只有请求路径与这个指定的url匹配,才可以进行路由。
(3)过滤器:使用过滤器,可以在请求被路由前或者之后对请求进行修改。

4 案例

(1)一个Gateway网关9527,一个服务提供者9001,一个注册中心Eureka7001;

(2)网关设置断言url为:hello/**,即请求url只有为hello开头才可以进行访问;

(3)客户端请求访问网关IP,访问到服务提供者9001。

 

 

 

资源:

https://blog.csdn.net/weixin_50616848/article/details/124764094

 

posted @ 2022-11-25 12:13  NingShare  阅读(73)  评论(0编辑  收藏  举报