国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Spring Cloud GateWay簡介

這篇具有很好參考價值的文章主要介紹了Spring Cloud GateWay簡介。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

什么是網(wǎng)關(guān)

網(wǎng)關(guān)是一種充當(dāng)轉(zhuǎn)換重任的計算機(jī)系統(tǒng)或設(shè)備,使用在不同的通信協(xié)議、數(shù)據(jù)格式或語言,甚至網(wǎng)關(guān)是一種充當(dāng)轉(zhuǎn)換重任的計算機(jī)系統(tǒng)或設(shè)備,使用在不同的通信協(xié)議、數(shù)據(jù)格式或語言,甚至體系結(jié)構(gòu)完全不同的兩種系統(tǒng)之間進(jìn)行數(shù)據(jù)傳輸.
網(wǎng)關(guān)具備轉(zhuǎn)發(fā), 路由和數(shù)據(jù)過濾的功能, 它能夠識別不同網(wǎng)絡(luò)中的數(shù)據(jù)包, 并根據(jù)器目的地址和源地址決定如何轉(zhuǎn)發(fā)數(shù)據(jù). 同時, 網(wǎng)關(guān)還可以實施網(wǎng)絡(luò)安全策略, 對進(jìn)出的數(shù)據(jù)包進(jìn)行檢查和過濾, 保護(hù)網(wǎng)絡(luò)安全.
網(wǎng)關(guān)在互聯(lián)網(wǎng)中起到重要作用, 它連接了內(nèi)部局域網(wǎng)好外部互聯(lián)網(wǎng), 使得數(shù)據(jù)能夠在不同網(wǎng)絡(luò)之間傳遞和交換.

網(wǎng)關(guān)有什么作用

  1. 路由功能: 根據(jù)目標(biāo)地址的不同選擇最佳的路徑
  2. 安全控制(統(tǒng)一認(rèn)證授權(quán)): 對進(jìn)出的數(shù)據(jù)包進(jìn)行檢查和過濾, 它可以授權(quán)來自源網(wǎng)絡(luò)的數(shù)據(jù)包, 并且阻止未授權(quán)的訪問.
  3. 協(xié)議轉(zhuǎn)換: 網(wǎng)關(guān)可以進(jìn)行協(xié)議轉(zhuǎn)換, 使得不同的網(wǎng)絡(luò)設(shè)備可以進(jìn)行通信, 例如: 將 HTTPS 轉(zhuǎn)換成 HTTP.
  4. 網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT): 將內(nèi)部網(wǎng)絡(luò)使用的私有 IP 地址轉(zhuǎn)換成外部網(wǎng)絡(luò)使用的公共 IP 地址.

Spring Cloud GateWay 組成

  1. 路由(Route): 定義了請求應(yīng)該被轉(zhuǎn)發(fā)到哪個目標(biāo)地址. 路由由 ID, 目標(biāo)URI, 斷言好過濾器組成. 通過配置多個路由, 可以實現(xiàn)不同請求的路由規(guī)則.
  2. 斷言(Predicate): 用于匹配請求的條件, 如果請求匹配斷言條件, 則會被路由轉(zhuǎn)發(fā)到對應(yīng)的目標(biāo)地址.
  3. 過濾器(Filter): 用于請求路由前或請求后進(jìn)行一些處理, 如添加頭部信息, 修改請求體等.

Spring Cloud GateWay 基礎(chǔ)使用

添加依賴

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>

注意: Spring Cloud GateWay 底層是基于響應(yīng)式 Reactor Web 實現(xiàn)的已經(jīng)包含了 Web 所以這兩個依賴同時引入就會報錯

設(shè)置路由規(guī)則

server:
  port: 10086

spring:
  cloud:
    gateway:
      routes:
        - id: user-service
          uri: http://localhost:9090
          predicates:
            - Path=/user/**, /userlog/**
            # 匹配多個路徑時可以用英文逗號隔開
        - id: order-service
          uri: http://localhost:9091
          predicates:
            - Path=/order/**


斷言類型

Spring Cloud GateWay 目前支持 12 種斷言類型

  1. After: 請求在指定時間之后才能匹配
  2. Before: 請求在指定時間之前才能匹配
  3. Between: 請求在指定時間中才能匹配
  4. Cookie: 匹配請求中的 Cookie 值
  5. Header: 匹配請求中的 Header 值
  6. Host: 匹配請求頭中的 Host 值
  7. Method: 匹配請求頭中的 Method 值
  8. Path: 匹配請求路徑
  9. Query: 匹配請求參數(shù)
  10. RemoteAddr: 匹配請求的 IP 地址
  11. Weight: 根據(jù)權(quán)重分發(fā)請求
  12. XDorwardedRemoteAddr: 根據(jù) X-Forwarded-For匹配

過濾器

過濾器主要有以下幾個功能:

  1. 功能擴(kuò)展和定制: 通過攔截和處理數(shù)據(jù)流或事件流, 可以修改數(shù)據(jù), 增加額外的功能邏輯, 實現(xiàn)特點的業(yè)務(wù)需求
  2. 數(shù)據(jù)校驗和過濾: 在接收到數(shù)據(jù)之后, 可以使用過濾器對數(shù)據(jù)進(jìn)行檢查, 嚴(yán)重數(shù)據(jù)的合法性, 過濾掉無效或不符合要求的數(shù)據(jù)
  3. 安全保護(hù): 可以控制訪問, 驗證權(quán)限, 對輸入的請求進(jìn)行檢查和清洗
  4. 性能優(yōu)化: 可以對數(shù)據(jù)進(jìn)行轉(zhuǎn)換, 過濾或者緩存, 以提高處理速度和效率,. 還可以用于數(shù)據(jù)壓縮, 緩存預(yù)熱等場景, 減少數(shù)據(jù)傳輸和處理的成本
  5. 統(tǒng)一處理和邏輯復(fù)用: 可以在不同組件或模塊上應(yīng)用相同的邏輯或處理方式

內(nèi)置過濾器

內(nèi)置過濾器分為局部過濾器全局過濾器
局部過濾器和全局過濾器用法相同只是一個只適用于當(dāng)前匹配的服務(wù)一個適用于全局

    gateway:
      routes:
        - id: user-service
          uri: lb://user-service-demo
          predicates:
            - Path=/user/**
          filters:  # 局部過濾器
            - AddResponseHeader=My-Resp-Header,javacn
        - id : order-service
          uri: lb://order-service-demo
          predicates:
            - Path=/order/**
      default-filters: # 全局過濾器
        - AddResponseHeader=My-Resp-Header2,javacn2
        - AddRequestHeader=My-Req, javacn

Retry

GateWay中也可以和OpenFeign一樣配置重試機(jī)制

spring:
  application:
    name: gateway-service
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
        username: nacos
        password: nacos
        register-enabled: false
    gateway:
       routes:
        - id: user-service
          uri: lb://user-service-demo
          predicates:
            - Path=/user/**
          filters:
            - AddResponseHeader=My-Resp-Header,javacn
            - name: Retry
              args:
                retries: 3 # 重試次數(shù)
                statuses: GATEWAY_TIMEOUT # 重試的 HTTP 狀態(tài)代碼=504
                methods: GET # 重試的 HTTP 方法
                series: SERVER_ERROR # 重試狀態(tài)碼段 5xx 狀態(tài)
                backoff: # 重試指數(shù)配置策略
                  firstBackoff: 10ms # 第一次重試間隔
                  maxBackoff: 50ms # 最大重試間隔
                  factor: 2 # firstBackoff * (factor ^ n)
                  basedOnPreviousValue: false # 基于上次值

注意: name必須是Retry, 否則識別不了

自定義全局過濾器

Spring Cloud GateWay 中也提供了自定義全局過濾器, 我們可以通過它來實現(xiàn)統(tǒng)一認(rèn)證授權(quán)等功能文章來源地址http://www.zghlxwxcb.cn/news/detail-754700.html

package com.example.gatewayservice.filter;

import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.core.Ordered;
import org.springframework.http.HttpStatus;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.http.server.reactive.ServerHttpResponse;
import org.springframework.stereotype.Component;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;

@Component
public class AuthFilter implements GlobalFilter, Ordered {
    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        // 獲取request對象
        ServerHttpRequest request = exchange.getRequest();
        // 獲取response對象
        ServerHttpResponse response = exchange.getResponse();
        // 獲取參數(shù)
        String username = request.getQueryParams().getFirst("username");
        String password = request.getQueryParams().getFirst("password");
        if (username != null && username.equals("admin") && password != null && password.equals("admin")) {
            return chain.filter(exchange);

        }else {
            // 設(shè)置無權(quán)限 401
            response.setStatusCode(HttpStatus.UNAUTHORIZED);
            // 執(zhí)行完成不在往下執(zhí)行
            return response.setComplete();
        }

    }

    @Override
    public int getOrder() {
        // 值越小越早執(zhí)行
        return 1;
    }
}


到了這里,關(guān)于Spring Cloud GateWay簡介的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Spring Cloud Gateway 超時、CORS配置 | Spring Cloud 17

    Spring Cloud Gateway 可以為所有路由配置 Http 超時(響應(yīng)和連接) ,并為每個特定路由覆蓋設(shè)置。 配置全局 http 超時: connect-timeout 必須 以毫秒為單位 指定。 response-timeout 必須指定為 java.time.Duration 使用示例:

    2024年02月14日
    瀏覽(20)
  • Spring Cloud Gateway 監(jiān)控、多網(wǎng)關(guān)實例路由共享 | Spring Cloud 18

    Actuator 是 Spring Boot 提供的用來對應(yīng)用系統(tǒng)進(jìn)行監(jiān)控的功能模塊,借助于 Actuator 開發(fā)者可以很方便地對應(yīng)用系統(tǒng)某些監(jiān)控指標(biāo)進(jìn)行查看、統(tǒng)計等。 Actuator 的核心是端點 Endpoint 。 Endpoint 可以讓我們監(jiān)視應(yīng)用程序并與其交互。 Spring Boot 包含許多內(nèi)置端點,并允許您添加自己的端

    2024年02月09日
    瀏覽(27)
  • 微服務(wù)動態(tài)權(quán)限管理方案(Spring Cloud Gateway+Spring Cloud Security)

    微服務(wù)動態(tài)權(quán)限管理方案(Spring Cloud Gateway+Spring Cloud Security)

    微服務(wù)認(rèn)證方案的大體方向是統(tǒng)一在網(wǎng)關(guān)層面認(rèn)證鑒權(quán),微服務(wù)只負(fù)責(zé)業(yè)務(wù),和鑒權(quán)完全隔離 整體包含以下四個角色 客戶端 :需要訪問微服務(wù)資源 網(wǎng)關(guān) :負(fù)責(zé)轉(zhuǎn)發(fā)、認(rèn)證、鑒權(quán) OAuth2.0授權(quán)服務(wù) :負(fù)責(zé)認(rèn)證授權(quán)頒發(fā)令牌 微服務(wù)集合 :提供資源的一系列服務(wù)。 這里的客戶端

    2024年02月12日
    瀏覽(21)
  • Spring Cloud Gateway

    Spring Cloud Gateway

    目錄 一、Spring Cloud Gateway 1、網(wǎng)關(guān)介紹 2、GateWay 3、GateWay項目搭建 4、GateWay配置路由的兩種方式 4.1、YML配置 4.2、配置類 5、GateWay實現(xiàn)負(fù)載均衡 5.1、自動負(fù)載均衡 5.2、手動負(fù)載均衡 6、GateWay斷言Predicate 7、GateWay的Filter ????????在 微服務(wù)架構(gòu) 中,一個 系統(tǒng)會被拆分為很多

    2024年02月10日
    瀏覽(17)
  • 微服務(wù)網(wǎng)關(guān):Spring Cloud Zuul 升級 Spring Cloud Gateway 的核心要點

    微服務(wù)網(wǎng)關(guān):Spring Cloud Zuul 升級 Spring Cloud Gateway 的核心要點

    在routes路由規(guī)則中,根據(jù)path去匹配,如果匹配中,就使用對應(yīng)的路由規(guī)則進(jìn)行請求轉(zhuǎn)發(fā) 如果無法從routes中匹配,則根據(jù)path用“/”去截取第一段作為服務(wù)名進(jìn)行請求轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)時,默認(rèn)將第一段截取調(diào) 如果截取的服務(wù)名不在注冊中心中存在服務(wù),則報錯404 在routes路由規(guī)則中

    2024年02月07日
    瀏覽(27)
  • Spring Cloud Gateway自帶RequestRateLimiter限流應(yīng)用及擴(kuò)展 | Spring Cloud 16

    限流是對某一時間窗口內(nèi)的請求數(shù)進(jìn)行限制,保持系統(tǒng)的可用性和穩(wěn)定性,防止因流量暴增而導(dǎo)致的系統(tǒng)運行緩慢或宕機(jī)。 在開發(fā)高并發(fā)系統(tǒng)時有三把利器用來保護(hù)系統(tǒng): 緩存:緩存的目的是提升系統(tǒng)訪問速度和增大系統(tǒng)處理容量 降級:降級是當(dāng)服務(wù)器壓力劇增的情況下,

    2024年02月10日
    瀏覽(21)
  • 細(xì)說 Spring Cloud Gateway

    在微服務(wù)架構(gòu)中,API 網(wǎng)關(guān)是一個非常重要的組件,它可以幫助我們實現(xiàn)服務(wù)的路由、負(fù)載均衡、認(rèn)證授權(quán)等功能。Spring Cloud Gateway 是 Spring Cloud 官方推出的一個基于 Spring 5、Spring Boot 2 和 Project Reactor 的 API 網(wǎng)關(guān)實現(xiàn)。本文將介紹 Spring Cloud Gateway 的基本概念、核心組件以及如何

    2024年02月14日
    瀏覽(24)
  • spring cloud 之 gateway

    spring cloud 之 gateway

    在微服務(wù)架構(gòu)體系中,一個系統(tǒng)會被拆分為很多個微服務(wù),那么作為客戶端要如何去調(diào)用這么多的微服務(wù)呢?如果沒有網(wǎng)關(guān)的存在,我們只能在客戶端記錄每個微服務(wù)的地址,然后分別調(diào)用,當(dāng)然這樣是不現(xiàn)實的 Kong ???基于Nginx+Lua開發(fā),性能高,穩(wěn)定,有多個可用的插件

    2024年02月12日
    瀏覽(21)
  • Spring Cloud Gateway學(xué)習(xí)

    Spring Cloud Gateway學(xué)習(xí)

    傳統(tǒng)的單體架構(gòu)只有一個服務(wù)開放給客戶端調(diào)用,但是在微服務(wù)架構(gòu)體系中是將一個系統(tǒng)拆分成多個微服務(wù),那么作為客戶端如何去調(diào)用這些微服務(wù)呢?如果沒有網(wǎng)關(guān)的存在,就只能在本地記錄每個微服務(wù)的調(diào)用地址。 無網(wǎng)關(guān)的微服務(wù)架構(gòu)存在的問題: 客戶端多次請求不同

    2024年02月07日
    瀏覽(38)
  • 聊聊Spring Cloud Gateway

    聊聊Spring Cloud Gateway

    網(wǎng)關(guān)概述 整體來看,網(wǎng)關(guān)有點類似于門面,所有的外部請求都會先經(jīng)過網(wǎng)關(guān)這一層。 網(wǎng)關(guān)不僅只是做一個請求的轉(zhuǎn)發(fā)及服務(wù)的整合,有了網(wǎng)關(guān)這個統(tǒng)一的入口之后,它還能提供以下功能。 針對所有請求進(jìn)行統(tǒng)一鑒權(quán)、限流、熔斷、日志。 協(xié)議轉(zhuǎn)化。針對后端多種不同的協(xié)議

    2024年02月07日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包