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.

    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日
    浏览(20)
  • Gateway和spring-boot-starter-web的恩怨情仇

    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日
    浏览(7)
  • spring cloud gateway中出现503 spring cloud gateway中出现503

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

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

    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日
    浏览(7)
  • 【Spring Cloud 八】Spring Cloud Gateway网关

    【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日
    浏览(12)
  • Spring Cloud Gateway 超时、CORS配置 | Spring Cloud 17

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

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

    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日
    浏览(8)
  • Spring Cloud Gateway学习

    Spring Cloud Gateway学习

    传统的单体架构只有一个服务开放给客户端调用,但是在微服务架构体系中是将一个系统拆分成多个微服务,那么作为客户端如何去调用这些微服务呢?如果没有网关的存在,就只能在本地记录每个微服务的调用地址。 无网关的微服务架构存在的问题: 客户端多次请求不同

    2024年02月07日
    浏览(17)
  • 聊聊Spring Cloud Gateway

    聊聊Spring Cloud Gateway

    网关概述 整体来看,网关有点类似于门面,所有的外部请求都会先经过网关这一层。 网关不仅只是做一个请求的转发及服务的整合,有了网关这个统一的入口之后,它还能提供以下功能。 针对所有请求进行统一鉴权、限流、熔断、日志。 协议转化。针对后端多种不同的协议

    2024年02月07日
    浏览(13)
  • Spring Cloud GateWay简介

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

    2024年02月05日
    浏览(11)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包