spring-cloud-starter-gateway-mvc的网关实现

这篇具有很好参考价值的文章主要介绍了spring-cloud-starter-gateway-mvc的网关实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一 概括

最近,我也一直在使用SpringCloudGateway开发我们自己的网关产品。根据我对官网文档:https://docs.spring.io/spring-cloud-gateway/reference/spring-cloud-gateway-server-mvc.html
的理解,内容如下:

SpringCloudGateway的默认底层依赖项是SpringWebflux。我们知道Spring Webflux是异步和响应式编程,并且编程范式是使用流范式编写的;

那么SpringCloudGateway支持同步网关吗?官方支持,官方网站提供了相应的解决方案,即将默认的底层Webflux切换到SpringMVC以支持同步;

相当于SpringCloudGateway为您提供了两种网关路由的底层实现,一种是对应于SpringWebflux的异步实现,另一种是与SpringMVC对应的同步实现。

二 spring-cloud-starter-gateway-mvc例子

1 pom.xml:

<?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>

    <groupId>com.winning.gate</groupId>
    <artifactId>mvc-gateway</artifactId>
    <version>1.0-SNAPSHOT</version>

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

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>2023.0.0</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway-mvc</artifactId>
        </dependency>
    </dependencies>

</project>

2 application.yml:

server:
  port: 9098

3 com.demo.GatewaySampleApplication:

package com.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * @author xch
 * 2023/12/15 16:56
 */
@SpringBootApplication
public class GatewaySampleApplication {

    public static void main(String[] args) {
        SpringApplication.run(GatewaySampleApplication.class, args);
    }

}

4 com.demo.SimpleGateway

package com.demo;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.function.RouterFunction;
import org.springframework.web.servlet.function.ServerResponse;

import static org.springframework.cloud.gateway.server.mvc.handler.GatewayRouterFunctions.route;
import static org.springframework.cloud.gateway.server.mvc.handler.HandlerFunctions.http;

/**
 * @author xch
 * 2023/12/15 16:52
 */

@Configuration
class SimpleGateway {
    @Bean
    public RouterFunction<ServerResponse> getRoute() {
        return route().GET("/demo", http("http://localhost:8080/")).build();
    }
}

Above is all the code

5 Request Results

GET http://localhost:9098/demo?ceshi=ceshi

HTTP/1.1 200 
date: Fri, 15 Dec 2023 09:23:37 GMT
Content-Type: application/json
Transfer-Encoding: chunked
Keep-Alive: timeout=60
Connection: keep-alive

{
  "code": 0,
  "data": "ceshi"
}
Response file saved.
> 2023-12-15T172337.200.json

Response code: 200; Time: 19ms (19 ms); Content length: 25 bytes (25 B)

The destination service address of the route is in SimpleGateway, you can change it to your own service文章来源地址https://www.toymoban.com/news/detail-797180.html

到了这里,关于spring-cloud-starter-gateway-mvc的网关实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring MVC found on classpath, which is incompatible with Spring Cloud Gateway at this time.

    项目概述:  问题解决: 步骤一:在关联的两个模块zx-gateway-0829和zx-common-0829中寻找 spring-boot-starter-web  步骤二:删除gateway模块pom.xml中关联的commont模块,将common中gateway所需要的工具复制一份到gateway模块对应位置下。 嗨喽,CSDN的友友们,今天启动网关Gateway时发现了一个不兼

    2023年04月26日
    浏览(25)
  • Gateway和spring-boot-starter-web的恩怨情仇

    为什么取这个题目,其实与我踩到的坑有关,说起来这个坑非常神奇,这里面就涉及到Gateway和spring-boot-starter-web底层所依赖的技术不兼容的问题。 SpringCloud 版本 ---- Finchley.SR2 SpringBoot 版本 ---- 2.0.6.RELEASE 如果同时在一个SpringBoot项目中引入了Gateway和spring-boot-starter-web,那么启动

    2024年02月21日
    浏览(28)
  • spring cloud gateway中出现503 spring cloud gateway中出现503

    当搭建网关模块的时候出现503的错误的最大的可能就是没有设置负载均衡的依赖包  原先搭建的时候采用的是下面的方式进行设置的 上面的这种方式可以直接进行注册和发现,但是要求必须导入下面的依赖 希望简单的随笔能够帮助你!

    2024年02月11日
    浏览(30)
  • org.springframework.cloud:spring-cloud-starter-openfeign:jar is missing详解

    openfeign无法导入的问题 我感觉最近带的好几个新人在搭建springCloud基础框架的时候,会犯一个非常小的错误,导致进度卡住了。 这个错误就是Feign导入的错误: ‘dependencies.dependency.version’ for org.springframework.cloud:spring-cloud-starter-openfeign:jar is missing. 表面上看是jar包没有下载下

    2024年02月07日
    浏览(35)
  • 【Spring Cloud 八】Spring Cloud Gateway网关

    【Spring Cloud一】微服务基本知识 【Spring Cloud 三】Eureka服务注册与服务发现 【Spring Cloud 四】Ribbon负载均衡 【Spring Cloud 五】OpenFeign服务调用 【Spring Cloud 六】Hystrix熔断 【Spring Cloud 七】Sleuth+Zipkin 链路追踪 在项目中是使用了Gateway做统一的请求的入口,以及统一的跨域处理以及

    2024年02月12日
    浏览(35)
  • Spring Cloud Gateway 超时、CORS配置 | Spring Cloud 17

    Spring Cloud Gateway 可以为所有路由配置 Http 超时(响应和连接) ,并为每个特定路由覆盖设置。 配置全局 http 超时: connect-timeout 必须 以毫秒为单位 指定。 response-timeout 必须指定为 java.time.Duration 使用示例:

    2024年02月14日
    浏览(45)
  • Spring Cloud Gateway

    目录 一、Spring Cloud Gateway 1、网关介绍 2、GateWay 3、GateWay项目搭建 4、GateWay配置路由的两种方式 4.1、YML配置 4.2、配置类 5、GateWay实现负载均衡 5.1、自动负载均衡 5.2、手动负载均衡 6、GateWay断言Predicate 7、GateWay的Filter         在 微服务架构 中,一个 系统会被拆分为很多

    2024年02月10日
    浏览(36)
  • spring cloud 之 gateway

    在微服务架构体系中,一个系统会被拆分为很多个微服务,那么作为客户端要如何去调用这么多的微服务呢?如果没有网关的存在,我们只能在客户端记录每个微服务的地址,然后分别调用,当然这样是不现实的 Kong    基于Nginx+Lua开发,性能高,稳定,有多个可用的插件

    2024年02月12日
    浏览(28)
  • Spring Cloud GateWay简介

    网关是一种充当转换重任的计算机系统或设备,使用在不同的通信协议、数据格式或语言,甚至网关是一种充当转换重任的计算机系统或设备,使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间进行数据传输. 网关具备转发, 路由和数据过滤的功

    2024年02月05日
    浏览(42)
  • 浅谈Spring Cloud Gateway

    网关:用户和微服务的桥梁 网关的核心是一组过滤器,按照先后顺序执行过滤操作。 Spring Cloud Gateway是基于webFlux框架实现,而webFlux框架底层则使用了高性能的Reactor模式通信框架的Netty Spring Cloud Gateway是Spring Cloud生态系统中的一个API网关,它基于Spring Framework 5,Spring Boot 2和P

    2024年02月11日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包