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去注冊(cè)中心上獲取轉(zhuǎn)發(fā)地址
enabled: true
###路由策略
routes:
##路由id
- id: producer
#### 基于lb負(fù)載均衡形式轉(zhuǎn)發(fā)(通過注冊(cè)中心服務(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 訪問測(cè)試
此時(shí)訪問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é)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- SpringCloudAlibaba極簡(jiǎn)入門整合Grpc代替OpenFeign的詳細(xì)過程
- SpringCloudAlibaba微服務(wù)調(diào)用組件OpenFeign的方法
- 基于SpringCloudAlibaba+Skywalking的全鏈路監(jiān)控設(shè)計(jì)方案
- SpringCloudAlibaba Nacos開啟鑒權(quán)解決跳過登錄頁(yè)面問題
- 聊聊SpringCloud和SpringCloudAlibaba的區(qū)別
- 使用SpringCloudAlibaba整合Dubbo
- SpringCloudAlibaba整合Feign實(shí)現(xiàn)遠(yuǎn)程HTTP調(diào)用的簡(jiǎn)單示例
- SpringCloudAlibaba分布式組件詳解
相關(guān)文章
Java客戶端通過HTTPS連接到Easysearch實(shí)現(xiàn)過程
這篇文章主要為大家介紹了Java客戶端通過HTTPS連接到Easysearch實(shí)現(xiàn)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
Java下http下載文件客戶端和上傳文件客戶端實(shí)例代碼
這篇文章主要介紹了Java下http下載文件客戶端和上傳文件客戶端實(shí)例代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-12-12
SpringCloud?Gateway之請(qǐng)求應(yīng)答日志打印方式
這篇文章主要介紹了SpringCloud?Gateway之請(qǐng)求應(yīng)答日志打印方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
前端發(fā)送的請(qǐng)求Spring如何返回一個(gè)文件詳解
這篇文章主要給大家介紹了關(guān)于前端發(fā)送的請(qǐng)求Spring如何返回一個(gè)文件的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-09-09
SpringBoot事件發(fā)布與監(jiān)聽超詳細(xì)講解
今天去官網(wǎng)查看spring boot資料時(shí),在特性中看見了系統(tǒng)的事件及監(jiān)聽章節(jié),所以下面這篇文章主要給大家介紹了關(guān)于SpringBoot事件發(fā)布和監(jiān)聽的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11
Spring解讀@Component和@Configuration的區(qū)別以及源碼分析
通過實(shí)例分析@Component和@Configuration注解的區(qū)別,核心在于@Configuration會(huì)通過CGLIB代理確保Bean的單例,而@Component不會(huì),在Spring容器中,使用@Configuration注解的類會(huì)被CGLIB增強(qiáng),保證了即使在同一個(gè)類中多次調(diào)用@Bean方法2024-10-10

