亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring?cloud網關gateway進行websocket路由轉發規則怎么配置

發布時間:2023-04-04 17:20:17 來源:億速云 閱讀:441 作者:iii 欄目:開發技術

這篇“Spring cloud網關gateway進行websocket路由轉發規則怎么配置”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Spring cloud網關gateway進行websocket路由轉發規則怎么配置”文章吧。

Spring cloud網關gateway進行websocket路由轉發規則配置

一、websocket及http路由轉發規則配置

后端是普通的服務時使用http或ws的詳細地址進行轉發,
后端是注冊到nacos上的服務時,使用lb:開頭或lb:ws開頭前綴加上注冊服務名進行配置,如下:

spring:
  cloud:
    gateway:
      routes:
        - id: http1
          uri: "http://127.0.0.1:8081" #http轉發配置,直接使用http地址使用方式1
          #url: "lb://serviceName" #http轉發配置,通過nacos注冊中心調用serviceName使用方式2
          predicates: 
            - Path=/**
        - id: websocket1
          uri: "ws://127.0.0.1:8081" #websocket配置,直接地址使用方式1
          #uri: "lb:ws://serviceName" #websocket配置,通過nacos注冊中心調用serviceName使用方式2
          predicates: 
            - Path=/websocket

補充:Spring Cloud Gateway--配置路由的方法

簡介

說明

本文介紹Spring Cloud Gateway配置路由的方法。

路由概述

        路由是網關配置的基本組成模塊,和Zuul的路由配置模塊類似。一個Route模塊由一個 ID,一個目標 URI,一組斷言和一組過濾器定義。如果斷言為真,則路由匹配,目標URI會被訪問。

方案1:使用配置文件

配置文件是:application.yml。

法1:通過服務名實現動態路由

        默認情況下Gatway會根據注冊中心注冊的服務列表, 以注冊中心上微服務名為路徑創建動態路由進行轉發,從而實現動態路由的功能。

application.yml示例

spring:
  application:
    name: cloud-gateway-gateway
  cloud:
    gateway:
      discovery:
        locator:
          # 開啟從注冊中心動態創建路由的功能,利用微服務名進行路由
          enabled: true
          # 用小寫的請求路徑的服務名匹配服務。默認為false(大寫)。(因為服務注冊時服務名被轉成大寫)
          lowerCaseServiceId: true

假如直接請求應用時的url是:localhost:8080/findUser(假設應用端口為8080)

則這樣配置后請求網關的url是:localhost:9000/user/findUser(假設網關服務端口為9000,應用服務名為user)

法2:指定路徑轉發路由

application.yml示例

spring:
  application:
    name: futureGateway
  cloud:
    gateway:
      routes:
        - id: accountServiceRouter # 路由ID,保持唯一
          uri: lb://accountService # 目標服務地址
          predicates: # 斷言(路由條件)
            - Path=/account/**
        - id: accountServiceRouter2 # 測試過濾器
          uri: lb://accountService # 目標服務地址
          predicates: # 斷言(路由條件)
            - Path=/client/account/**
          filters: # 過濾器
            - StripPrefix=1 # 截去路徑中的/client,剩余部分和uri拼接作為地址,數字代表要截去的位數
        - id: emailServiceRouter
          uri: http://127.0.0.1:8201
          predicates:
            - Path=/email/**

id

        在一個網關中,id要是唯一的,命名的時候方便區分即可。

uri

        請求轉發的目標地址,可以以http、https、lb和ws等為前綴。例如:

1.http方式 :
uri: http://localhost:8001/
2.lb(注冊中心中服務名字)方式 :
uri: lb://cloud-payment-service
以lb為前綴的時候表示這是一個動態路由,GateWay會根據lb://后面的服務名稱從服務注冊中心中獲取服務實例,然后將請求轉發到具體的服務地址,實現負載均衡
3.websocket方式 :
uri: ws://localhost:8001/ 

predicates

        斷言。通過斷言可以設置一組路由條件,可以根據請求方式、請求頭、請求參數、請求主機和請求路徑等斷言進行設置,通常我們使用請求路徑進行設置,只要請求地址和Path中的地址匹配,就會將請求轉發,多個路徑以逗號分隔,例如:

spring:
  cloud:
    gateway:
      routes:
        - id: path_route
          uri: https://example.org
          predicates:
            - Path=/red/{segment},/blue/{segment}

filters

        過濾器。使用過濾器可以在網關轉發請求前和接收響應后執行一些操作,例如鑒權、限流等,例如StripPrefix可以去掉客戶端請求地址中的若干路徑,然后將剩余的路徑和uri中的地址拼接后轉發。

        Filter分兩種,GatewayFilter和GlobalFilter,GatewayFilter應用在單個路由上,GlobalFilter應用在全局路由上。因為GlobalFilter可以使所有的路由都生效,所以可以用來實現統一的鑒權、日志記錄等功能。

方案2:代碼配置

示例配置

@Configuration
public class GatewayConfig {
    @Bean
    public RouteLocator customRouteLocator(RouteLocatorBuilder routeLocatorBuilder){
        // 路由構造器
        RouteLocatorBuilder.Builder routes = routeLocatorBuilder.routes();
 
        // 設置路徑
        routes.route("baidu_news_guonei_routh", r -> {
            return r.path("/guonei").uri("http://news.baidu.com/guonei");
        });
        routes.route("baidu_news_guoji_routh", r -> {
            return r.path("/guoji").uri("http://news.baidu.com/guoji");
        });
 
        return routes.build();
    }
}

以上就是關于“Spring cloud網關gateway進行websocket路由轉發規則怎么配置”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

湟中县| 上栗县| 奎屯市| 昔阳县| 正蓝旗| 宜君县| 巴东县| 丹阳市| 沙河市| 台山市| 无极县| 贵定县| 龙胜| 岱山县| 六枝特区| 迁西县| 孟州市| 日喀则市| 旅游| 井陉县| 新乐市| 孝义市| 巴彦淖尔市| 通州市| 哈尔滨市| 庐江县| 永济市| 榆社县| 玉田县| 秦安县| 钟祥市| 永修县| 永昌县| 阿合奇县| 江安县| 新干县| 锦屏县| 京山县| 广南县| 辽宁省| 许昌市|