微服务实战(八)集成Sentinel网关服务限流功能 SpringCloud GateWay + Sentinel + Nacos

本章主要内容

在SpringCloud GateWay服务网关中集成Sentinel来实现服务的限流功能。

首先,我们谈一下什么是服务限流。

在如今互联网的大环境下,我们后端的接口调用频次(QPS/TPS)动辄上百万,甚至达到千万级别,这对于服务端的承受能力是一个巨大的考验。那么限流在这个问题中起到什么作用呢?其实就是对于流量进行有策略的管理和限制。 比如说在一个系统中,有订单查询服务,商品查询服务,积分查询等,如果一个系统能支持的QPS(每秒查询次数)是100,那么这100该如何如何分配就是限流功能所考虑的事情。

根据这些服务的重要性,我们可能会把商品查询服务的QPS设置的比较高,因为这类用户查询到商品是有购买意向的,而订单查询、积分查询啥的管他呢!那么在一段时间内用户访问量过大时,我们就能尽量保证有购买意向的用户正常使用系统。这就是限流的作用。

什么是Sentinel

Sentinel 由阿里巴巴研发,主要以流量为切入点,从流量控制熔断降级系统负载保护等多个维度保护服务的稳定性。

文档:https://github.com/alibaba/Sentinel/wiki/主页

源码:https://github.com/alibaba/Sentinel

其实文档还是非常全面的,我也就不做搬运工了,主要是有目的性地讲述一下与SpringCloud GateWay的集成以及初步使用吧!

和SpringCloud GateWay 集成

添加依赖

先在我们之前搭建上的网关工程的pom.xml 中添加sentinel的网关依赖包

<dependency>
	<groupId>com.alibaba.csp</groupId>
	<artifactId>sentinel-spring-cloud-gateway-adapter</artifactId>
</dependency>

The managed version is 1.6.3 The artifact is managed in com.alibaba.cloud:spring-cloud-alibaba-dependencies:2.1.0.RELEASE

由于我们已经引入了 spring-cloud-alibaba-dependencies ,所以在上面就不用特意添加版本号了,默认就使用了1.6.3,与整体的SpringCloud版本对应。

 

注入Sentinel配置

我们写一个 @Configuration 配置类(放在Boot的类路径同级或者子级),里面的代码主要作用是设置需要限流的API (根据路径),以及限流的规则



import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import javax.annotation.PostConstruct;

import org.springframework.beans.factory.ObjectProvider;
import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
import org.springframework.http.codec.ServerCodecConfigurer;
import 
  • 14
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值