亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Springboot整合GateWay+Nacos實現(xiàn)動態(tài)路由

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

1、簡介

路由轉發(fā) + 執(zhí)行過濾器鏈。

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

基本功能如下:

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

在這里插入圖片描述

2、gateway核心概念

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

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

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

3、路由

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

4、實戰(zhàn)練習

1、項目結構

在這里插入圖片描述

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、服務提供者依賴(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)關依賴(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>

        <!--客戶端負載均衡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、服務提供者1配置(provider)

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

服務提供者2復制修改端口即可

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

server:
  port: 8080

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

4、服務提供者Controller

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


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

5、項目啟動

啟動服務提供者9002 瀏覽器訪問localhost:8080/provider/getpost

在這里插入圖片描述

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

負載均衡

傳統(tǒng)模式

在這里插入圖片描述

gateway

在這里插入圖片描述

1、配置文件

server:
  port: 8080

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

分別啟動服務提供者9002、9001 瀏覽器訪問localhost:8080/provider/getpost 實現(xiàn)負載均衡

在這里插入圖片描述

在這里插入圖片描述

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

相關文章

  • Javabean基于xstream包實現(xiàn)轉XML文檔的方法

    Javabean基于xstream包實現(xiàn)轉XML文檔的方法

    這篇文章主要介紹了Javabean基于xstream包實現(xiàn)轉XML文檔的方法,結合具體實例形式分析了xstream包用于轉換xml文件的具體使用技巧,需要的朋友可以參考下
    2017-05-05
  • Hibernate的Annotation版Hello world實例

    Hibernate的Annotation版Hello world實例

    這篇文章主要介紹了Hibernate的Annotation版Hello world實現(xiàn)方法,詳細分析了Annotation的具體使用步驟與Hello world實現(xiàn)方法,需要的朋友可以參考下
    2016-03-03
  • java并發(fā)編程Lock鎖可重入性與公平性分析

    java并發(fā)編程Lock鎖可重入性與公平性分析

    這篇文章主要為大家介紹了java并發(fā)編程Lock鎖可重入性與公平性分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • maven 隱式依賴引起的包沖突解決辦法

    maven 隱式依賴引起的包沖突解決辦法

    這篇文章主要介紹了maven 隱式依賴引起的包沖突解決辦法的相關資料,需要的朋友可以參考下
    2016-12-12
  • REST架構及RESTful應用程序簡介

    REST架構及RESTful應用程序簡介

    這篇文章主要為大家介紹了REST架構及RESTful的應用程序簡介,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-03-03
  • Java實現(xiàn)游戲抽獎算法

    Java實現(xiàn)游戲抽獎算法

    這篇文章主要為大家詳細介紹了Java實現(xiàn)游戲抽獎算法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • Java bat批處理命令啟動jar包的操作方法

    Java bat批處理命令啟動jar包的操作方法

    這篇文章主要介紹了JAVA bat批處理命令啟動jar包,本文給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-12-12
  • 解決JD-GUI for mac big sur打不開問題

    解決JD-GUI for mac big sur打不開問題

    這篇文章主要介紹了解決JD-GUI for mac big sur打不開問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Java中如何正確重寫equals方法

    Java中如何正確重寫equals方法

    Object類中equals方法比較的是兩個對象的引用地址,只有對象的引用地址指向同一個地址時,才認為這兩個地址是相等的,否則這兩個對象就不相等
    2021-10-10
  • Flowable歷史查詢實例分析

    Flowable歷史查詢實例分析

    這篇文章主要介紹了Flowable歷史查詢實例分析,歷史是記錄流程執(zhí)行過程中發(fā)生的事情,并將其永久存儲的組件,與運行時數(shù)據(jù)不同,歷史數(shù)據(jù)在流程實例完成以后仍保存在數(shù)據(jù)庫中,下面我們來深入了解
    2023-10-10

最新評論