SpringCloudAlibaba整合服務(wù)網(wǎng)關(guān)GateWay教程
Gateway屬于Springcloud自研的第二代微服務(wù)網(wǎng)關(guān)框架,Zuul屬于netfix公司開源的產(chǎn)品,屬于第一代微服務(wù)網(wǎng)關(guān);
1 引入依賴
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-gateway -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
<version>2.2.0.RELEASE</version>
</dependency>2 配置文件
server:
port: 80
####服務(wù)網(wǎng)關(guān)名稱
spring:
application:
name: springcloudalibaba-gateway
cloud:
gateway:
discovery:
locator:
####開啟以服務(wù)id去注冊中心上獲取轉(zhuǎn)發(fā)地址
enabled: true
###路由策略
routes:
##路由id
- id: producer
#### 基于lb負(fù)載均衡形式轉(zhuǎn)發(fā)(通過注冊中心服務(wù)名稱,獲取真實(shí)訪問地址)
uri: lb://springcloudalibaba-producer
filters:
- StripPrefix=1
###匹配規(guī)則
predicates:
- Path=/producer/**
nacos:
discovery:
server-addr: nacosIp地址:8848
### 127.0.0.1/producer/*** 轉(zhuǎn)發(fā)到http://127.0.0.1:8080/***3 訪問測試
此時訪問127.0.0.1/producer/getPort 則轉(zhuǎn)發(fā)到springcloudalibaba-producer服務(wù):127.0.0.1:8080/producer/getPort
4 案例:自定義TokenFilter實(shí)現(xiàn)參數(shù)攔截
@Component
public class TokenFilter implements GlobalFilter {
@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
String token = exchange.getRequest().getQueryParams().getFirst("token");
if(token==null||token.isEmpty()){
ServerHttpResponse response = exchange.getResponse();
response.setStatusCode(HttpStatus.BAD_GATEWAY);
String msg = "token not is null";
DataBuffer buffer = response.bufferFactory().wrap(msg.getBytes());
return response.writeWith(Mono.just(buffer));
}
return chain.filter(exchange);
}
}訪問:127.0.0.1:8080/producer/getPort

訪問:127.0.0.1:8080/producer/getPort ?token="111"

總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
- SpringCloudAlibaba極簡入門整合Grpc代替OpenFeign的詳細(xì)過程
- SpringCloudAlibaba微服務(wù)調(diào)用組件OpenFeign的方法
- 基于SpringCloudAlibaba+Skywalking的全鏈路監(jiān)控設(shè)計方案
- SpringCloudAlibaba Nacos開啟鑒權(quán)解決跳過登錄頁面問題
- 聊聊SpringCloud和SpringCloudAlibaba的區(qū)別
- 使用SpringCloudAlibaba整合Dubbo
- SpringCloudAlibaba整合Feign實(shí)現(xiàn)遠(yuǎn)程HTTP調(diào)用的簡單示例
- SpringCloudAlibaba分布式組件詳解
相關(guān)文章
MybatisPlus實(shí)現(xiàn)簡單增刪改查功能
這篇文章主要介紹了MybatisPlus實(shí)現(xiàn)簡單增刪改查的相關(guān)資料,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04
Java實(shí)現(xiàn)幾十萬條數(shù)據(jù)插入實(shí)例教程(30萬條數(shù)據(jù)插入MySQL僅需13秒)
這篇文章主要給大家介紹了關(guān)于Java如何實(shí)現(xiàn)幾十萬條數(shù)據(jù)插入的相關(guān)資料,30萬條數(shù)據(jù)插入MySQL僅需13秒,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2023-04-04
JAVAWEB實(shí)現(xiàn)簡單的商城項目(一)實(shí)例代碼解析
本文給大家分享一段實(shí)例代碼給大家介紹JAVAWEB實(shí)現(xiàn)簡單的商城項目(一),非常具有參考價值,感興趣的朋友一起學(xué)習(xí)吧2016-02-02
mybatis中一對一、一對多的<association> 配置使用
<association>?是 MyBatis 中處理一對一或一對多關(guān)系的映射元素,用于處理一對一和一對多關(guān)系的映射,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-05-05
如何解決Project SDK is not defined問題
這篇文章主要介紹了如何解決Project SDK is not defined問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09
解決@JsonInclude(JsonInclude.Include.NON_NULL)不起作用問題
這篇文章主要介紹了解決@JsonInclude(JsonInclude.Include.NON_NULL)不起作用問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06
Java 字節(jié)數(shù)組類型(byte[])與int類型互轉(zhuǎn)方法
下面小編就為大家?guī)硪黄狫ava 字節(jié)數(shù)組類型(byte[])與int類型互轉(zhuǎn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02

