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

Spring Cloud Gateway集成SpringDoc,集中管理微服務(wù)API

這篇具有很好參考價值的文章主要介紹了Spring Cloud Gateway集成SpringDoc,集中管理微服務(wù)API。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

本文目標(biāo)

Spring Cloud微服務(wù)集成SpringDoc,在Spring Cloud Gateway中統(tǒng)一管理微服務(wù)的API,微服務(wù)上下線時自動刷新SwaggerUi中的group組。

依賴版本

框架 版本
Spring Boot 3.1.5
Spring Cloud 2022.0.4
Spring Cloud Alibaba 2022.0.0.0
Spring Doc 2.2.0
Nacos Server 2.2.3

開始集成

項(xiàng)目模塊

springcloud springdoc,SpringDoc,微服務(wù),java,架構(gòu)

公共模塊里的配置是之前文章中提到的內(nèi)容,加了一個webmvc和webflux的適配,我會將文章和代碼倉庫的鏈接放在最下邊,有需要的可以去看看。

引入依賴,配置依賴管理

在父模塊中添加lombok、測試包和服務(wù)發(fā)現(xiàn)與注冊的包,管理Spring Cloud、Spring Cloud Alibaba依賴版本,如下
不要忘了SpringDoc的依賴管理

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.1.5</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>spring-doc-spring-cloud</artifactId>
    <version>0.0.1</version>
    <packaging>pom</packaging>
    <name>spring-doc-spring-cloud</name>
    <description>spring-doc-spring-cloud</description>
    <modules>
        <module>spring-doc-cloud-common</module>
        <module>spring-doc-cloud-gateway</module>
        <module>spring-doc-cloud-webflux</module>
        <module>spring-doc-cloud-webmvc</module>
    </modules>
    <properties>
        <!-- 指定Java版本為Java17 -->
        <java.version>17</java.version>
        <!-- 公共模塊版本 -->
        <common.version>0.0.1</common.version>
        <!-- 修復(fù)SpringBoot自帶snakeyaml依賴版本的漏洞 -->
        <snakeyaml.version>2.0</snakeyaml.version>
        <!-- SpringDoc-OpenApi版本號 -->
        <spring-doc.version>2.2.0</spring-doc.version>
        <!-- SpringCloud版本 -->
        <spring-cloud.version>2022.0.4</spring-cloud.version>
        <!-- 指定打包插件版本 -->
        <maven-surefire-plugin.version>3.2.2</maven-surefire-plugin.version>
        <!-- Spring Cloud Alibaba版本號 -->
        <spring-cloud-alibaba.version>2022.0.0.0</spring-cloud-alibaba.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- 服務(wù)注冊與發(fā)現(xiàn) -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!-- 適用于webmvc的SpringDoc依賴 -->
            <dependency>
                <groupId>org.springdoc</groupId>
                <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
                <version>${spring-doc.version}</version>
            </dependency>

            <!-- 適用于webflux的SpringDoc依賴 -->
            <dependency>
                <groupId>org.springdoc</groupId>
                <artifactId>springdoc-openapi-starter-webflux-ui</artifactId>
                <version>${spring-doc.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

</project>

spring-doc-cloud-gateway模塊說明

引入webflux、gateway、loadbalancer負(fù)載均衡和springdoc依賴,同時引入公共模塊

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.example</groupId>
        <artifactId>spring-doc-spring-cloud</artifactId>
        <version>0.0.1</version>
    </parent>

    <artifactId>spring-doc-cloud-gateway</artifactId>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <!-- webflux依賴 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-webflux</artifactId>
        </dependency>
        <!-- 網(wǎng)關(guān) -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>
        <!-- 負(fù)載均衡 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
        </dependency>

        <!-- SpringDoc -->
        <dependency>
            <groupId>org.springdoc</groupId>
            <artifactId>springdoc-openapi-starter-webflux-ui</artifactId>
        </dependency>

        <dependency>
            <groupId>io.projectreactor</groupId>
            <artifactId>reactor-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!-- 公共包,這里是對于swagger的自定義配置,可以參考之前的文章或直接查看代碼倉庫的實(shí)現(xiàn) -->
        <dependency>
            <groupId>com.example</groupId>
            <artifactId>spring-doc-cloud-common</artifactId>
            <version>${common.version}</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.graalvm.buildtools</groupId>
                <artifactId>native-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <image>
                        <builder>paketobuildpacks/builder-jammy-tiny:latest</builder>
                    </image>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

修改application.yml

開啟gateway自動掃描,根據(jù)注冊中心的服務(wù)自動生成路由,路由名轉(zhuǎn)小寫,添加自定義的swagger配置。

spring:
  application:
    name: gateway
  cloud:
    gateway:
      discovery:
        locator:
          # 根據(jù)注冊中心的服務(wù)自動生成路由
          enabled: true
          # 路由名轉(zhuǎn)小寫
          lower-case-service-id: true

# ------------以下內(nèi)容可改為公共配置------------
# SpringDoc自定義配置
custom:
  info:
    title: ${spring.application.name}-api
    version: 0.0.1
    description: 這是一個使用SpringDoc生成的在線文檔.
    terms-of-service: http://127.0.0.1:8000/test01
    gateway-url: http://127.0.0.1:8080
  license:
    name: Apache 2.0
  security:
    name: Authenticate
    token-url: http://kwqqr48rgo.cdhttp.cn/oauth2/token
    authorization-url: http://kwqqr48rgo.cdhttp.cn/oauth2/authorize

添加InstancesChangeEventListener

監(jiān)聽微服務(wù)啟、停狀態(tài),微服務(wù)狀態(tài)改變后刷新Swagger UI中的組。

package com.example.config;

import com.alibaba.nacos.client.naming.event.InstancesChangeEvent;
import com.alibaba.nacos.common.notify.Event;
import com.alibaba.nacos.common.notify.NotifyCenter;
import com.alibaba.nacos.common.notify.listener.Subscriber;
import com.alibaba.nacos.common.utils.JacksonUtils;
import jakarta.annotation.PostConstruct;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springdoc.core.properties.AbstractSwaggerUiConfigProperties;
import org.springdoc.core.properties.SwaggerUiConfigProperties;
import org.springframework.cache.Cache;
import org.springframework.cache.CacheManager;
import org.springframework.cloud.gateway.route.RouteDefinition;
import org.springframework.cloud.gateway.route.RouteDefinitionLocator;
import org.springframework.context.annotation.Configuration;
import org.springframework.util.ObjectUtils;

import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;

import static org.springdoc.core.utils.Constants.DEFAULT_API_DOCS_URL;
import static org.springframework.cloud.loadbalancer.core.CachingServiceInstanceListSupplier.SERVICE_INSTANCE_CACHE_NAME;

/**
 * 監(jiān)聽注冊中心實(shí)例注冊狀態(tài)改變事件,微服務(wù)實(shí)例狀態(tài)改變后刷新swagger ui的組(一個組等于一個微服務(wù))
 * 
 * @author vains
 */
@Slf4j
@Configuration(proxyBeanMethods = false)
public class InstancesChangeEventListener extends Subscriber<InstancesChangeEvent> {

    private final String LB_SCHEME = "lb";

    private final RouteDefinitionLocator locator;

    @Resource
    private CacheManager defaultLoadBalancerCacheManager;

    private final SwaggerUiConfigProperties swaggerUiConfigProperties;

    /**
     * 獲取配置文件中默認(rèn)配置的swagger組
     */
    private final Set<AbstractSwaggerUiConfigProperties.SwaggerUrl> defaultUrls;


    public InstancesChangeEventListener(RouteDefinitionLocator locator,
                                        SwaggerUiConfigProperties swaggerUiConfigProperties) {
        this.locator = locator;
        this.swaggerUiConfigProperties = swaggerUiConfigProperties;
        // 構(gòu)造器中初始化配置文件中的swagger組
        this.defaultUrls = swaggerUiConfigProperties.getUrls();
    }

    @Override
    public void onEvent(InstancesChangeEvent event) {
        if (log.isDebugEnabled()) {
            log.info("Spring Gateway 接收實(shí)例刷新事件:{}, 開始刷新緩存", JacksonUtils.toJson(event));
        }
        Cache cache = defaultLoadBalancerCacheManager.getCache(SERVICE_INSTANCE_CACHE_NAME);
        if (cache != null) {
            cache.evict(event.getServiceName());
        }
        // 刷新group
        this.refreshGroup();

        if (log.isDebugEnabled()) {
            log.info("Spring Gateway 實(shí)例刷新完成");
        }
    }

    /**
     * 刷新swagger的group
     */
    public void refreshGroup() {
        // 獲取網(wǎng)關(guān)路由
        List<RouteDefinition> definitions = locator.getRouteDefinitions().collectList().block();
        if (ObjectUtils.isEmpty(definitions)) {
            return;
        }

        // 根據(jù)路由規(guī)則生成 swagger組 配置
        Set<AbstractSwaggerUiConfigProperties.SwaggerUrl> swaggerUrls = definitions.stream()
                // 只處理在注冊中心注冊過的(lb://service)
                .filter(definition -> definition.getUri().getScheme().equals(LB_SCHEME))
                .map(definition -> {
                    // 生成 swagger組 配置,以微服務(wù)在注冊中心中的名字當(dāng)做組名、請求路徑(我這里使用的是自動掃描生成的,所以直接用了這個,其它自定義的按需修改)
                    String authority = definition.getUri().getAuthority();
                    return new AbstractSwaggerUiConfigProperties.SwaggerUrl(authority, authority + DEFAULT_API_DOCS_URL, authority);
                })
                .collect(Collectors.toSet());

        // 如果在配置文件中有添加其它 swagger組 配置則將兩者合并
        if (!ObjectUtils.isEmpty(defaultUrls)) {
            swaggerUrls.addAll(defaultUrls);
        }

        // 重置配置文件
        swaggerUiConfigProperties.setUrls(swaggerUrls);

        if (log.isDebugEnabled()) {
            String groups = swaggerUrls.stream()
                    .map(AbstractSwaggerUiConfigProperties.SwaggerUrl::getName)
                    .collect(Collectors.joining(","));
            log.debug("刷新Spring Gateway Doc Group成功,獲取到組:{}.", groups);
        }
    }

    @PostConstruct
    public void registerToNotifyCenter() {
        // 注冊監(jiān)聽事件
        NotifyCenter.registerSubscriber((this));
    }

    @Override
    public Class<? extends Event> subscribeType() {
        return InstancesChangeEvent.class;
    }
}

網(wǎng)關(guān)啟動時、微服務(wù)停止、微服務(wù)啟動時網(wǎng)關(guān)會從注冊中心獲取最新的服務(wù)列表,然后根據(jù)服務(wù)列表生成路由配置,路由的代理路徑就是微服務(wù)的名字,使用http://網(wǎng)關(guān)ip:網(wǎng)關(guān)端口/微服務(wù)名/**訪問對應(yīng)的微服務(wù)。

在注冊中心(Nacos)的服務(wù)列表更新時會有一個SpringEvent事件通知,也就是上邊類中的監(jiān)聽實(shí)現(xiàn),每次收到通知時就會根據(jù)網(wǎng)關(guān)的路由生成SwaggerUrl列表,其中name是微服務(wù)的名字(application.name),路徑是/{application.name}/v3/api-docs,這樣實(shí)際上就是通過網(wǎng)關(guān)將請求代理至各微服務(wù)了,獲取到的api信息實(shí)際上也是各微服務(wù)的,如果某個微服務(wù)禁用swagger,在網(wǎng)關(guān)中也獲取不到對應(yīng)的api信息。以上內(nèi)容就是之前提到的微服務(wù)狀態(tài)改變后刷新Swagger UI中的組。

當(dāng)然,雖然可以通過網(wǎng)關(guān)代理獲取到微服務(wù)的api信息,但是在測試接口時還是會出現(xiàn)問題,請求會直接發(fā)送至微服務(wù),并不會經(jīng)過網(wǎng)關(guān)代理,如下所示

springcloud springdoc,SpringDoc,微服務(wù),java,架構(gòu)

springcloud springdoc,SpringDoc,微服務(wù),java,架構(gòu)

所以說需要修改各微服務(wù)配置,指定當(dāng)前服務(wù)訪問的url,在SpringDoc配置中添加servers屬性,并設(shè)置值為被網(wǎng)關(guān)代理的路徑,如下所示

springcloud springdoc,SpringDoc,微服務(wù),java,架構(gòu)

在引用的微服務(wù)中設(shè)置自定義配置custom.info.gateway-url,相信看到這里就明白為什么上方網(wǎng)關(guān)的yml中會有這么一個配置了。

修改微服務(wù)yml

添加類似如下配置,設(shè)置spring.application.name,設(shè)置SpringDoc自定義配置,設(shè)置custom.info.gateway-url

spring:
  application:
    name: webmvc

# ------------以下內(nèi)容可改為公共配置------------
# SpringDoc自定義配置
custom:
  info:
    title: ${spring.application.name}-api
    version: 0.0.1
    description: 這是一個使用SpringDoc生成的在線文檔.
    terms-of-service: http://127.0.0.1:8200/test01
    # 設(shè)置當(dāng)前服務(wù)在網(wǎng)關(guān)中的代理路徑
    gateway-url: http://127.0.0.1:8080/${spring.application.name}
  license:
    name: Apache 2.0
  security:
    name: Authenticate
    token-url: http://kwqqr48rgo.cdhttp.cn/oauth2/token
    authorization-url: http://kwqqr48rgo.cdhttp.cn/oauth2/authorize
server:
  port: 8200

查看效果

webflux訪問地址,默認(rèn)會有一個webjars前綴

http://127.0.0.1:8080/webjars/swagger-ui/index.html

springcloud springdoc,SpringDoc,微服務(wù),java,架構(gòu)

其它微服務(wù)都是一些測試接口,沒必要貼了,大家用自己的就好,或者去代碼倉庫拉取代碼看看。文章來源地址http://www.zghlxwxcb.cn/news/detail-861122.html

附錄

  1. SpringDoc枚舉字段處理與SpringBoot接收枚舉參數(shù)處理
  2. SpringDoc基礎(chǔ)配置和集成OAuth2登錄認(rèn)證教程
  3. 代碼倉庫:Gitee、Github

到了這里,關(guān)于Spring Cloud Gateway集成SpringDoc,集中管理微服務(wù)API的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • Spring Cloud Gateway集成Nacos實(shí)現(xiàn)負(fù)載均衡

    Spring Cloud Gateway集成Nacos實(shí)現(xiàn)負(fù)載均衡

    ??Nacas可以用于實(shí)現(xiàn)Spring Cloud Gateway中網(wǎng)關(guān)動態(tài)路由功能,也可以基于Nacos來實(shí)現(xiàn)對后端服務(wù)的負(fù)載均衡,前者利用Nacos配置中心功能,后者利用Nacos服務(wù)注冊功能。 接下來我們來看下Gateway集成Nacos實(shí)現(xiàn)負(fù)載均衡的架構(gòu)圖 一. 環(huán)境準(zhǔn)備 1. 版本環(huán)境 Jdk: java.version1.8/java.version Spr

    2024年02月10日
    瀏覽(97)
  • Spring Cloud Gateway集成sentinel進(jìn)行網(wǎng)關(guān)限流

    本文使用版本如下:

    2024年02月09日
    瀏覽(21)
  • Spring Cloud Gateway集成Nacos作為注冊中心和配置中心

    本篇文章將介紹Spring Cloud Alibaba體系下Spring Cloud Gateway的搭建,服務(wù)注冊中心和分布式配置中心使用Nacos,后續(xù)將會持續(xù)更新,介紹集成Sentinel,如何做日志鏈路追蹤,如何做全鏈路灰度發(fā)布設(shè)計(jì),以及Spring Cloud Gateway的擴(kuò)展等。 ? Spring Boot,Spring Cloud,Discovery,Config等基礎(chǔ)依

    2024年02月11日
    瀏覽(506)
  • Spring Cloud Gateway集成Actuator的安全漏洞和解決方案

    Spring Cloud Gateway是一個基于Spring Boot2.0和Spring WebFlux的API網(wǎng)關(guān),它可以將請求轉(zhuǎn)發(fā)到多個微服務(wù)并對請求進(jìn)行路由、過濾和修改。Spring Cloud Gateway集成Actuator后可以提供更多的監(jiān)控和管理功能,但是也可能導(dǎo)致安全漏洞。 最近線上環(huán)境出現(xiàn)一起安全事件,就是由于Spring Cloud Gat

    2024年02月09日
    瀏覽(17)
  • Spring Cloud Gateway集成Sentinel 1.8.6及Sentinel Dashboard

    Spring Cloud Gateway集成Sentinel 1.8.6及Sentinel Dashboard

    一、安裝sentinel 1.下載地址:sentinel v1.8.6 2.啟動sentinel dashboard,執(zhí)行以下命令: java -Dcsp.sentinel.log.dir=D:xxxsentinellogs -Dserver.port=9217 -Dcsp.sentinel.dashboard.server=localhost:9217 -Dcsp.sentinel.heartbeat.client.ip=localhost -Dproject.name=sentinel-dashboard -Dsentinel.dashboard.auth.username=sentinel -Dsentinel.dashboar

    2024年02月11日
    瀏覽(15)
  • cloud Alibab+nacos+gateway集成swaggerui,統(tǒng)一文檔管理(注意點(diǎn))

    cloud Alibab+nacos+gateway集成swaggerui,統(tǒng)一文檔管理(注意點(diǎn))

    首先說明:本文只說整合注意點(diǎn) 效果圖和功能參考鏈接 在網(wǎng)關(guān)服務(wù)添加依賴即可解決 請注意排查:webflux的依賴是否有效。并且排除spring-boot-starter-web 注意查看gateway的相關(guān)配置是否有錯誤 原因:一定是你的依賴或者配置有問題 有問題請留言

    2024年02月13日
    瀏覽(19)
  • 微服務(wù) – Spring Cloud – Gateway

    微服務(wù)可能分布在不同的主機(jī)上,這樣有許多缺點(diǎn):前端需要硬編碼調(diào)用不同地址的微服務(wù)很麻煩;存在跨域訪問的問題;微服務(wù)地址直接暴露是不安全的。還有所以需要為前端提供一個統(tǒng)一的訪問入口。Gateway 就是用于解決以上問題的框架。 路由轉(zhuǎn)發(fā) 負(fù)載均衡 安全認(rèn)證 日

    2024年02月10日
    瀏覽(19)
  • Spring cloud教程Gateway服務(wù)網(wǎng)關(guān)

    Spring cloud教程Gateway服務(wù)網(wǎng)關(guān)

    寫在前面的話: 本筆記在參考網(wǎng)上視頻以及博客的基礎(chǔ)上,只做個人學(xué)習(xí)筆記,如有侵權(quán),請聯(lián)系刪除,謝謝! Spring Cloud Gateway 是 Spring Cloud 的一個全新項(xiàng)目,該項(xiàng)目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等響應(yīng)式編程和事件流技術(shù)開發(fā)的網(wǎng)關(guān),它旨在為微服務(wù)架構(gòu)提

    2024年02月08日
    瀏覽(31)
  • Spring Cloud Gateway集成聚合型Spring Boot API發(fā)布組件knife4j,增強(qiáng)Swagger

    Spring Cloud Gateway集成聚合型Spring Boot API發(fā)布組件knife4j,增強(qiáng)Swagger

    大家都知道,在前后端分離開發(fā)的時代,前后端接口對接是一項(xiàng)必不可少的工作。 可是, 作 為后端開發(fā),怎么和前端更好的配合,才能讓自己不心累、腦累 ,直接扔給前端一個后端開放api接口文檔或者頁面,讓前端不用看著難受,也不用前端老問你,來愉快的合作呢? 原

    2024年04月22日
    瀏覽(22)
  • Spring Cloud第二季--服務(wù)網(wǎng)關(guān)Gateway

    Spring Cloud第二季--服務(wù)網(wǎng)關(guān)Gateway

    Spring Cloud Gateway是在Spring生態(tài)系統(tǒng)之上構(gòu)建的API網(wǎng)關(guān)服務(wù),基于Spring 5,Spring Boot 2和 Project Reactor等技術(shù)。 Gateway 使用的Webflux中的reactor-netty響應(yīng)式編程組件,底層使用了 Netty 通訊框架。Spring Cloud Gateway能干嘛呢? Gateway是原zuul1.x版的替代。 Spring Cloud Gateway 與 Zuul的區(qū)別: Zuu

    2024年02月03日
    瀏覽(24)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包