最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring?cloud網(wǎng)關(guān)gateway進(jìn)行websocket路由轉(zhuǎn)發(fā)規(guī)則配置過(guò)程

 更新時(shí)間:2023年04月04日 10:20:13   作者:冰之杍  
這篇文章主要介紹了Spring?cloud網(wǎng)關(guān)gateway進(jìn)行websocket路由轉(zhuǎn)發(fā)規(guī)則配置過(guò)程,文中還通過(guò)實(shí)例代碼介紹了Spring?Cloud?Gateway--配置路由的方法,需要的朋友可以參考下

Spring cloud網(wǎng)關(guān)gateway進(jìn)行websocket路由轉(zhuǎn)發(fā)規(guī)則配置

一、websocket及http路由轉(zhuǎn)發(fā)規(guī)則配置

后端是普通的服務(wù)時(shí)使用http或ws的詳細(xì)地址進(jìn)行轉(zhuǎn)發(fā),
后端是注冊(cè)到nacos上的服務(wù)時(shí),使用lb:開(kāi)頭或lb:ws開(kāi)頭前綴加上注冊(cè)服務(wù)名進(jìn)行配置,如下:

spring:
  cloud:
    gateway:
      routes:
        - id: http1
          uri: "http://127.0.0.1:8081" #http轉(zhuǎn)發(fā)配置,直接使用http地址使用方式1
          #url: "lb://serviceName" #http轉(zhuǎn)發(fā)配置,通過(guò)nacos注冊(cè)中心調(diào)用serviceName使用方式2
          predicates: 
            - Path=/**
        - id: websocket1
          uri: "ws://127.0.0.1:8081" #websocket配置,直接地址使用方式1
          #uri: "lb:ws://serviceName" #websocket配置,通過(guò)nacos注冊(cè)中心調(diào)用serviceName使用方式2
          predicates: 
            - Path=/websocket

補(bǔ)充:Spring Cloud Gateway--配置路由的方法

簡(jiǎn)介

說(shuō)明

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

路由概述

        路由是網(wǎng)關(guān)配置的基本組成模塊,和Zuul的路由配置模塊類(lèi)似。一個(gè)Route模塊由一個(gè) ID,一個(gè)目標(biāo) URI,一組斷言和一組過(guò)濾器定義。如果斷言為真,則路由匹配,目標(biāo)URI會(huì)被訪問(wèn)。

方案1:使用配置文件

配置文件是:application.yml。

法1:通過(guò)服務(wù)名實(shí)現(xiàn)動(dòng)態(tài)路由

        默認(rèn)情況下Gatway會(huì)根據(jù)注冊(cè)中心注冊(cè)的服務(wù)列表, 以注冊(cè)中心上微服務(wù)名為路徑創(chuàng)建動(dòng)態(tài)路由進(jìn)行轉(zhuǎn)發(fā),從而實(shí)現(xiàn)動(dòng)態(tài)路由的功能。

application.yml示例

spring:
  application:
    name: cloud-gateway-gateway
  cloud:
    gateway:
      discovery:
        locator:
          # 開(kāi)啟從注冊(cè)中心動(dòng)態(tài)創(chuàng)建路由的功能,利用微服務(wù)名進(jìn)行路由
          enabled: true
          # 用小寫(xiě)的請(qǐng)求路徑的服務(wù)名匹配服務(wù)。默認(rèn)為false(大寫(xiě))。(因?yàn)榉?wù)注冊(cè)時(shí)服務(wù)名被轉(zhuǎn)成大寫(xiě))
          lowerCaseServiceId: true

假如直接請(qǐng)求應(yīng)用時(shí)的url是:localhost:8080/findUser(假設(shè)應(yīng)用端口為8080)

則這樣配置后請(qǐng)求網(wǎng)關(guān)的url是:localhost:9000/user/findUser(假設(shè)網(wǎng)關(guān)服務(wù)端口為9000,應(yīng)用服務(wù)名為user)

法2:指定路徑轉(zhuǎn)發(fā)路由

application.yml示例

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

id

        在一個(gè)網(wǎng)關(guān)中,id要是唯一的,命名的時(shí)候方便區(qū)分即可。

uri

        請(qǐng)求轉(zhuǎn)發(fā)的目標(biāo)地址,可以以http、https、lb和ws等為前綴。例如:

1.http方式 :
uri: http://localhost:8001/
2.lb(注冊(cè)中心中服務(wù)名字)方式 :
uri: lb://cloud-payment-service
以lb為前綴的時(shí)候表示這是一個(gè)動(dòng)態(tài)路由,GateWay會(huì)根據(jù)lb://后面的服務(wù)名稱(chēng)從服務(wù)注冊(cè)中心中獲取服務(wù)實(shí)例,然后將請(qǐng)求轉(zhuǎn)發(fā)到具體的服務(wù)地址,實(shí)現(xiàn)負(fù)載均衡。
3.websocket方式 :
uri: ws://localhost:8001/ 

predicates

        斷言。通過(guò)斷言可以設(shè)置一組路由條件,可以根據(jù)請(qǐng)求方式、請(qǐng)求頭、請(qǐng)求參數(shù)、請(qǐng)求主機(jī)和請(qǐng)求路徑等斷言進(jìn)行設(shè)置,通常我們使用請(qǐng)求路徑進(jìn)行設(shè)置,只要請(qǐng)求地址和Path中的地址匹配,就會(huì)將請(qǐng)求轉(zhuǎn)發(fā),多個(gè)路徑以逗號(hào)分隔,例如:

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

filters

        過(guò)濾器。使用過(guò)濾器可以在網(wǎng)關(guān)轉(zhuǎn)發(fā)請(qǐng)求前和接收響應(yīng)后執(zhí)行一些操作,例如鑒權(quán)、限流等,例如StripPrefix可以去掉客戶(hù)端請(qǐng)求地址中的若干路徑,然后將剩余的路徑和uri中的地址拼接后轉(zhuǎn)發(fā)。

        Filter分兩種,GatewayFilter和GlobalFilter,GatewayFilter應(yīng)用在單個(gè)路由上,GlobalFilter應(yīng)用在全局路由上。因?yàn)镚lobalFilter可以使所有的路由都生效,所以可以用來(lái)實(shí)現(xiàn)統(tǒng)一的鑒權(quán)、日志記錄等功能。

方案2:代碼配置

示例配置

@Configuration
public class GatewayConfig {
    @Bean
    public RouteLocator customRouteLocator(RouteLocatorBuilder routeLocatorBuilder){
        // 路由構(gòu)造器
        RouteLocatorBuilder.Builder routes = routeLocatorBuilder.routes();
 
        // 設(shè)置路徑
        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();
    }
}

到此這篇關(guān)于Spring cloud網(wǎng)關(guān)gateway進(jìn)行websocket路由轉(zhuǎn)發(fā)規(guī)則配置的文章就介紹到這了,更多相關(guān)Spring cloud網(wǎng)關(guān)gateway 路由轉(zhuǎn)發(fā)規(guī)則內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 利用spring?boot+WebSocket實(shí)現(xiàn)后臺(tái)主動(dòng)消息推送功能

    利用spring?boot+WebSocket實(shí)現(xiàn)后臺(tái)主動(dòng)消息推送功能

    目前對(duì)于服務(wù)端向客戶(hù)端推送數(shù)據(jù),常用技術(shù)方案有輪詢(xún)、websocket等,下面這篇文章主要給大家介紹了關(guān)于利用spring?boot+WebSocket實(shí)現(xiàn)后臺(tái)主動(dòng)消息推送功能的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • packages思維及使用Java添加Android平臺(tái)特定實(shí)現(xiàn)

    packages思維及使用Java添加Android平臺(tái)特定實(shí)現(xiàn)

    這篇文章主要為大家介紹了packages思維及使用Java添加Android平臺(tái)特定實(shí)現(xiàn)在Flutter框架里的體現(xiàn)和運(yùn)用詳解,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • Java springboot接口迅速上手,帶你半小時(shí)極速入門(mén)

    Java springboot接口迅速上手,帶你半小時(shí)極速入門(mén)

    這篇文章主要給大家介紹了關(guān)于SpringBoot實(shí)現(xiàn)API接口的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-09-09
  • SpringBoot請(qǐng)求處理之常用參數(shù)注解介紹與源碼分析

    SpringBoot請(qǐng)求處理之常用參數(shù)注解介紹與源碼分析

    SpringBoot是一種整合Spring技術(shù)棧的方式(或者說(shuō)是框架),同時(shí)也是簡(jiǎn)化Spring的一種快速開(kāi)發(fā)的腳手架,本篇讓我們一起學(xué)習(xí)請(qǐng)求處理、常用注解和方法參數(shù)的小技巧
    2022-10-10
  • Spring?Boot項(xiàng)目傳參校驗(yàn)的最佳實(shí)踐指南

    Spring?Boot項(xiàng)目傳參校驗(yàn)的最佳實(shí)踐指南

    有參數(shù)傳遞的地方都少不了參數(shù)校驗(yàn),在web開(kāi)發(fā)中前端的參數(shù)校驗(yàn)是為了用戶(hù)體驗(yàn),后端的參數(shù)校驗(yàn)是為了安全,下面這篇文章主要給大家介紹了關(guān)于Spring?Boot項(xiàng)目傳參校驗(yàn)的最佳實(shí)踐,需要的朋友可以參考下
    2022-04-04
  • idea編輯XML文件出現(xiàn):Tag name expected報(bào)錯(cuò)的解決

    idea編輯XML文件出現(xiàn):Tag name expected報(bào)錯(cuò)的解決

    在XML中,一些特殊字符不能直接使用,因?yàn)樗鼈儽槐A粲糜赬ML文檔的結(jié)構(gòu)和語(yǔ)法,如果直接使用這些保留字符,會(huì)導(dǎo)致解析錯(cuò)誤,正確的做法是使用實(shí)體引用或字符引用,或者使用CDATA標(biāo)記將這些字符包裹起來(lái)
    2025-01-01
  • SpringBoot的Admin服務(wù)監(jiān)控詳解

    SpringBoot的Admin服務(wù)監(jiān)控詳解

    這篇文章主要介紹了SpringBoot的Admin服務(wù)監(jiān)控詳解,Spring Boot Admin(SBA)是一個(gè)開(kāi)源的社區(qū)項(xiàng)目,用于管理和監(jiān)控 Spring Boot 應(yīng)用程序,需要的朋友可以參考下
    2024-01-01
  • 很簡(jiǎn)單的Java斷點(diǎn)續(xù)傳實(shí)現(xiàn)原理

    很簡(jiǎn)單的Java斷點(diǎn)續(xù)傳實(shí)現(xiàn)原理

    這篇文章主要以實(shí)例的方式為大家詳細(xì)介紹了簡(jiǎn)單的Java斷點(diǎn)續(xù)傳實(shí)現(xiàn)原理,感興趣的小伙伴們可以參考一下
    2016-07-07
  • Java如何獲取客戶(hù)端mac地址

    Java如何獲取客戶(hù)端mac地址

    在用戶(hù)登錄時(shí),通過(guò)獲取IP地址來(lái)識(shí)別計(jì)算機(jī)的MAC地址,然后將用戶(hù)賬號(hào)與該MAC地址進(jìn)行綁定,確保每個(gè)賬號(hào)只能在一臺(tái)特定的計(jì)算機(jī)上登錄,增強(qiáng)系統(tǒng)安全性,這種方法適用于需要嚴(yán)格賬戶(hù)安全管理的場(chǎng)景
    2024-09-09
  • java實(shí)現(xiàn)撲克牌發(fā)牌器

    java實(shí)現(xiàn)撲克牌發(fā)牌器

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)撲克牌發(fā)牌器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04

最新評(píng)論

东城区| 鞍山市| 宜兰县| 泰宁县| 介休市| 理塘县| 利辛县| 万盛区| 即墨市| 福州市| 东兰县| 嵩明县| 张家界市| 喀喇沁旗| 福州市| 石屏县| 哈尔滨市| 青川县| 鄂伦春自治旗| 磐石市| 西丰县| 梅河口市| 将乐县| 建湖县| 大田县| 根河市| 营口市| 三江| 剑阁县| 衡阳市| 杨浦区| 岳普湖县| 临漳县| 尖扎县| 洞口县| 正蓝旗| 司法| 景谷| 三台县| 健康| 慈溪市|