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ù)名稱,獲取真實訪問地址)
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實現(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)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- 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實現(xiàn)遠(yuǎn)程HTTP調(diào)用的簡單示例
- SpringCloudAlibaba分布式組件詳解
相關(guān)文章
Java客戶端通過HTTPS連接到Easysearch實現(xiàn)過程
這篇文章主要為大家介紹了Java客戶端通過HTTPS連接到Easysearch實現(xiàn)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
SpringCloud?Gateway之請求應(yīng)答日志打印方式
這篇文章主要介紹了SpringCloud?Gateway之請求應(yīng)答日志打印方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
SpringBoot事件發(fā)布與監(jiān)聽超詳細(xì)講解
今天去官網(wǎng)查看spring boot資料時,在特性中看見了系統(tǒng)的事件及監(jiān)聽章節(jié),所以下面這篇文章主要給大家介紹了關(guān)于SpringBoot事件發(fā)布和監(jiān)聽的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11
Spring解讀@Component和@Configuration的區(qū)別以及源碼分析
通過實例分析@Component和@Configuration注解的區(qū)別,核心在于@Configuration會通過CGLIB代理確保Bean的單例,而@Component不會,在Spring容器中,使用@Configuration注解的類會被CGLIB增強,保證了即使在同一個類中多次調(diào)用@Bean方法2024-10-10

