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

Springboot整合GateWay+Nacos實(shí)現(xiàn)動(dòng)態(tài)路由

 更新時(shí)間:2024年08月09日 09:52:17   作者:.小羅同學(xué)  
本文主要介紹了Springboot整合GateWay+Nacos實(shí)現(xiàn)動(dòng)態(tài)路由,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

1、簡(jiǎn)介

路由轉(zhuǎn)發(fā) + 執(zhí)行過(guò)濾器鏈。

? 網(wǎng)關(guān),旨在為微服務(wù)架構(gòu)提供一種簡(jiǎn)單有效的統(tǒng)一的API路由管理方式。同時(shí),基于Filter鏈的方式提供了網(wǎng)關(guān)的基本功能,比如:鑒權(quán)、流量控制、熔斷、路徑重寫、黑白名單、日志監(jiān)控等。

基本功能如下:

  • 統(tǒng)一入口:暴露出網(wǎng)關(guān)地址,作為請(qǐng)求唯一入口,隔離內(nèi)部微服務(wù),保障了后臺(tái)服務(wù)的安全性
  • 鑒權(quán)校驗(yàn):識(shí)別每個(gè)請(qǐng)求的權(quán)限,拒絕不符合要求的請(qǐng)求
  • 動(dòng)態(tài)路由:動(dòng)態(tài)的將請(qǐng)求路由到不同的后端集群中

在這里插入圖片描述

2、gateway核心概念

  • 路由(Route):由一個(gè)ID,一個(gè)目標(biāo)URI(最終路由到的url地址),一組斷言(匹配條件判斷)和一組過(guò)濾器定義。如果斷言為真,則路由匹配。

  • 斷言(Predicate):通過(guò)斷言匹配http請(qǐng)求中的任何內(nèi)容(請(qǐng)求頭、請(qǐng)求參數(shù)等),如果匹配成功,則匹配斷言所在路由。

  • 過(guò)濾器(Filter):在請(qǐng)求前后執(zhí)行業(yè)務(wù)邏輯,比如鑒權(quán)、日志監(jiān)控、流量控制、修改請(qǐng)求頭、修改響應(yīng)等。

3、路由

spring:
  cloud:
	gateway:
	  routes:
	  - id: manager						# 路由唯一標(biāo)識(shí)
		uri: lb://manager_server		# 路由指向目的地URL或服務(wù)名,客戶端請(qǐng)求最終被轉(zhuǎn)發(fā)到的微服務(wù) 									
		predicates:
		- Path=/manager/** 				# 斷言:以manager開(kāi)頭的請(qǐng)求都負(fù)載到manager_server服務(wù)
		filters:
		- RewritePath=/manager/(?<segment>.*), /$\{segment} # 過(guò)濾器:過(guò)濾掉url里的manager,例如http://ip:port/manager/test -> http://ip:port/test
		order: 5						# 用于多個(gè)Route之間的排序,數(shù)值越小越靠前,匹配優(yōu)先級(jí)越高

4、實(shí)戰(zhàn)練習(xí)

1、項(xiàng)目結(jié)構(gòu)

在這里插入圖片描述

2、依賴

1、父依賴

<properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <dubbo.version>3.2.0-beta.4</dubbo.version>
        <spring-boot.version>2.6.11</spring-boot.version>
    </properties>


    <dependencyManagement>
        <dependencies>
            <!-- Spring Boot -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!--springcloudalibaba-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2021.0.4.0</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!--nacos-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
                <version>2021.0.4.0</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

2、服務(wù)提供者依賴(provider)

    <dependencies>

        <!-- spring boot starter -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>


        <!--Nacos-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
    </dependencies>

3、網(wǎng)關(guān)依賴(gateway)

    <dependencies>
        <!--gateway-->
        <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-gateway -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
            <version>3.1.2</version>
        </dependency>

        <!--Nacos-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

        <!--客戶端負(fù)載均衡loadbalancer-->
        <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-loadbalancer -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
            <version>3.1.1</version>
        </dependency>
    </dependencies>

3、配置文件

1、服務(wù)提供者1配置(provider)

server:
  port: 9002 
spring:
  application:
    name: SpringBoot-Nacos-Dubbo-provider #Nacos注冊(cè)中心服務(wù)名稱
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848 #Nacos注冊(cè)中心地址

服務(wù)提供者2復(fù)制修改端口即可

2、gateway配置(路由配置方式1)

server:
  port: 8080

spring:
  application:
    name: gateway
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #注冊(cè)到nacos中
    gateway:
      routes:
        - id: gateway1 #路由的ID,沒(méi)有固定規(guī)則但要求唯一,建議配合服務(wù)名
          uri: http://localhost:9002 #匹配后提供服務(wù)的路由地址
          predicates:
            - Path=/provider/** # 斷言,路徑相匹配的進(jìn)行路由

4、服務(wù)提供者Controller

@RestController
@RequestMapping("/provider")
public class ProviderController {
    @Value("${server.port}")
    private String post;


    @GetMapping("/getpost")
    public String getPost(){
        return "當(dāng)前端口:"+post;
    }
}

5、項(xiàng)目啟動(dòng)

啟動(dòng)服務(wù)提供者9002 瀏覽器訪問(wèn)localhost:8080/provider/getpost

在這里插入圖片描述

6、gateway配置(路由配置方式2(動(dòng)態(tài)配置))

負(fù)載均衡

傳統(tǒng)模式

在這里插入圖片描述

gateway

在這里插入圖片描述

1、配置文件

server:
  port: 8080

spring:
  application:
    name: gateway
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #注冊(cè)到nacos中
    gateway:
      discovery:
        locator:
          enabled: true #開(kāi)啟從注冊(cè)中心動(dòng)態(tài)創(chuàng)建路由的功能,利用微服務(wù)名進(jìn)行路由
      routes:
        - id: gateway1 #路由的ID,沒(méi)有固定規(guī)則但要求唯一,建議配合服務(wù)名
          uri: lb://SpringBoot-Nacos-Dubbo-provider #匹配后提供服務(wù)的名稱 用于負(fù)載均衡
          predicates:
            - Path=/provider/** # 斷言,路徑相匹配的進(jìn)行路由

分別啟動(dòng)服務(wù)提供者9002、9001 瀏覽器訪問(wèn)localhost:8080/provider/getpost 實(shí)現(xiàn)負(fù)載均衡

在這里插入圖片描述

在這里插入圖片描述

到此這篇關(guān)于Springboot整合GateWay+Nacos實(shí)現(xiàn)動(dòng)態(tài)路由的文章就介紹到這了,更多相關(guān)Springboot 動(dòng)態(tài)路由內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • Java8 Map中新增的方法使用總結(jié)

    Java8 Map中新增的方法使用總結(jié)

    這篇文章主要介紹了Java8 Map中新增的方法使用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • Java搭建簡(jiǎn)單Netty開(kāi)發(fā)環(huán)境入門教程

    Java搭建簡(jiǎn)單Netty開(kāi)發(fā)環(huán)境入門教程

    這篇文章主要介紹了Java搭建簡(jiǎn)單Netty開(kāi)發(fā)環(huán)境入門教程,有詳細(xì)的代碼展示和maven依賴,能夠幫助你快速上手Netty開(kāi)發(fā)框架,需要的朋友可以參考下
    2021-06-06
  • java的靜態(tài)方法調(diào)用方式

    java的靜態(tài)方法調(diào)用方式

    這篇文章主要介紹了java的靜態(tài)方法調(diào)用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Java實(shí)現(xiàn)汽車租賃系統(tǒng)

    Java實(shí)現(xiàn)汽車租賃系統(tǒng)

    這篇文章介紹了Java實(shí)現(xiàn)汽車租賃系統(tǒng)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • 關(guān)于Mybatis動(dòng)態(tài)sql中test的坑點(diǎn)總結(jié)

    關(guān)于Mybatis動(dòng)態(tài)sql中test的坑點(diǎn)總結(jié)

    這篇文章主要介紹了關(guān)于Mybatis動(dòng)態(tài)sql中test的坑點(diǎn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • 如何解決shardingsphere報(bào)錯(cuò)Missing?the?data?source?name:‘null‘

    如何解決shardingsphere報(bào)錯(cuò)Missing?the?data?source?name:‘null‘

    使用ShardingSphere進(jìn)行分庫(kù)操作時(shí),如果遇到“Missing?the?datasource?name:?‘null’”的錯(cuò)誤,通常是因?yàn)樗僮鞯谋頉](méi)有配置相關(guān)的路由信息,例如,如果在properties中僅配置了health_record和health_task的路由規(guī)則
    2024-11-11
  • Springboot添加jvm監(jiān)控實(shí)現(xiàn)數(shù)據(jù)可視化

    Springboot添加jvm監(jiān)控實(shí)現(xiàn)數(shù)據(jù)可視化

    這篇文章主要介紹了Springboot添加jvm監(jiān)控實(shí)現(xiàn)數(shù)據(jù)可視化,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • 繼承JpaRepository后,找不到findOne()方法的解決

    繼承JpaRepository后,找不到findOne()方法的解決

    這篇文章主要介紹了繼承JpaRepository后,找不到findOne()方法的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • SpringBoot集成Quartz實(shí)現(xiàn)定時(shí)任務(wù)的方法

    SpringBoot集成Quartz實(shí)現(xiàn)定時(shí)任務(wù)的方法

    Quartz是一個(gè)定時(shí)任務(wù)框架,其他介紹網(wǎng)上也很詳盡。這里要介紹一下Quartz里的幾個(gè)非常核心的接口。通過(guò)實(shí)例代碼給大家講解SpringBoot集成Quartz實(shí)現(xiàn)定時(shí)任務(wù)的方法,感興趣的朋友一起看看吧
    2020-05-05
  • 登陸驗(yàn)證碼kaptcha結(jié)合spring boot的用法詳解

    登陸驗(yàn)證碼kaptcha結(jié)合spring boot的用法詳解

    在一個(gè)web應(yīng)用中驗(yàn)證碼是一個(gè)常見(jiàn)的元素。不管是防止機(jī)器人還是爬蟲(chóng)都有一定的作用,下面這篇文章主要給大家介紹了登陸驗(yàn)證碼kaptcha結(jié)合spring boot用法的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-06-06

最新評(píng)論

拉萨市| 新蔡县| 屏东市| 双江| 温州市| 林芝县| 益阳市| 阿拉善左旗| 肃宁县| 镇沅| 太保市| 西平县| 大新县| 宁乡县| 裕民县| 新乡市| 介休市| 洪江市| 紫金县| 平南县| 右玉县| 连云港市| 绵阳市| 兴海县| 略阳县| 冷水江市| 石门县| 枣庄市| 松潘县| 绥滨县| 辽源市| 曲阳县| 祁连县| 兴海县| 锡林郭勒盟| 乌拉特后旗| 安化县| 通山县| 文安县| 海淀区| 岱山县|