spring cloud gateway整合sentinel實現閘道器限流
阿新 • • 發佈:2020-01-30
這篇文章主要介紹了spring cloud gateway整合sentinel實現閘道器限流,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
說明: sentinel可以作為各微服務的限流,也可以作為gateway閘道器的限流元件。 spring cloud gateway有限流功能,但此處用sentinel來作為替待。
說明:sentinel流控可以放在gateway閘道器端,也可以放在各微服務端。
1,以父工程為基礎,建立子工程
2,新增pom依賴
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-sentinel-gateway</artifactId> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency>
2,新增配置項
server: port: 9092 spring: cloud: nacos: discovery: register-enabled: false server-addr: localhost:8848 namespace: c22e5019-0bee-43b1-b80b-fc0b9d847501 sentinel: transport: dashboard: localhost:8080 port: 8719 scg: fallback: mode: response response-status: 455 response-body: error! gateway: routes: - id: demo_route uri: lb://demo predicates: - Path=/demo/** - id: demo2_test uri: lb://demo2 predicates: - Path=/user/** application: name: gateway-sentinel
scg.fallback為sentinel限流後的響應配置
3,啟動類
@SpringBootApplication @EnableDiscoveryClient public class GatewaySentinelApplication { public static void main(String[] args) { SpringApplication.run(GatewaySentinelApplication.class,args); } }
4,啟動後,在sentinel控制檯可以看到 gateway-sentinel 應用,可以通過控制檯設定流控規則。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。