iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >SpringCloud Gateway动态路由怎么配置
  • 475
分享到

SpringCloud Gateway动态路由怎么配置

2023-07-05 13:07:52 475人浏览 独家记忆
摘要

这篇“SpringCloud Gateway动态路由怎么配置”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“spri

这篇“SpringCloud Gateway动态路由怎么配置”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“springCloud Gateway动态路由怎么配置”文章吧。

路由

gateway最主要的作用是,提供统一的入口,路由,鉴权,限流,熔断;这里的路由就是请求的转发,根据设定好的某些条件,比如断言,进行转发。

动态

动态的目的是让程序更加可以在运行的过程中兼容更多的业务场景。

涉及到两个服务,一个是门户服务(作用是提供给运营人员管理入口--包括:管理路由、绑定路由),一个是网关服务(gateway组件,为门户服务提供:查询路由信息、添加路由、删除路由、编辑路由接口)。

路由模型实体类

@Datapublic class RouteDefinitionObject {        private String id;        private List<PredicateDefinition> predicates;        private List<FilterDefinition> filters;        private String uri;        private Integer order = 0;    @Data    public static class PredicateDefinition {                private String name;                private Map<String, String> args;    }    @Data    public static class FilterDefinition {                private String name;                private Map<String, String> args;    }}

动态路径配置

@Slf4j@RestController@RequestMapping("/route")public class GatewayRouteConfig implements ApplicationEventPublisherAware {    public final Map<String, RouteDefinitionObject> MAP = new ConcurrentHashMap<>();    private final RouteDefinitionWriter routeDefinitionWriter;    private ApplicationEventPublisher applicationEventPublisher;    public GatewayRouteConfig(RouteDefinitionWriter routeDefinitionWriter) {        this.routeDefinitionWriter = routeDefinitionWriter;    }    @Override    public void setApplicationEventPublisher(@NonNull ApplicationEventPublisher applicationEventPublisher) {        this.applicationEventPublisher = applicationEventPublisher;    }        @PostMapping("/save")    public R<String> save(@RequestBody RouteDefinitionObject routeDefinitionObject) {        try {            // 路由模型转换成路由对象            RouteDefinition definition = BeanUtil.toBean(routeDefinitionObject, RouteDefinition.class);            URI uri = routeDefinitionObject.getUri().startsWith("Http") ? UriComponentsBuilder.fromHttpUrl(routeDefinitionObject.getUri()).build().toUri() : URI.create(routeDefinitionObject.getUri());            definition.setUri(uri);            // 新增            routeDefinitionWriter.save(Mono.just(definition)).subscribe();            applicationEventPublisher.publishEvent(new RefreshRoutesEvent(this));            MAP.put(routeDefinitionObject.getId(), routeDefinitionObject);            return R.success();        } catch (Exception e) {            log.error("\n", e);        }        return R.failed();    }        @GetMapping("/delete")    public R<Mono<ResponseEntity<Object>>> delete(@RequestParam("id") String id) {        try {            Mono<ResponseEntity<Object>> responseEntityMono = routeDefinitionWriter.delete(Mono.just(id))                    .then(Mono.defer(() ->                            Mono.just(ResponseEntity.ok().build())                    )).onErrorResume((t) ->                                    t instanceof NotFoundException                            , (t) ->                                    Mono.just(ResponseEntity.notFound().build())                    );            MAP.remove(id);            return R.success(responseEntityMono);        } catch (Exception e) {            log.error("\n", e);        }        return R.failed();    }        @PostMapping("/update")    public R<String> update(@RequestBody RouteDefinitionObject routeDefinitionObject) {        try {            // 删除            delete(routeDefinitionObject.getId());            // 新增            save(routeDefinitionObject);            return R.success();        } catch (Exception e) {            log.error("\n", e);        }        return R.failed();    }        @GetMapping("/list")    public R<Collection<RouteDefinitionObject>> list() {        return R.success(MAP.values());    }}

路由模型JSON数据

{    "filters":[        {            "name":"StripPrefix",            "args":{                "_genkey_0":"2"            }        }    ],    "id":"item-system",    "uri":"lb://item-system",    "order":0,    "predicates":[        {            "name":"Path",            "args":{                "_genkey_0":"/api/system/**"            }        }    ]}

以上就是关于“SprinGCloud Gateway动态路由怎么配置”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

--结束END--

本文标题: SpringCloud Gateway动态路由怎么配置

本文链接: https://www.lsjlt.com/news/352007.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SpringCloud Gateway动态路由怎么配置
    这篇“SpringCloud Gateway动态路由怎么配置”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Spri...
    99+
    2023-07-05
  • SpringCloud之SpringCloud gateway网关路由怎么配置
    本篇内容介绍了“SpringCloud之SpringCloud gateway网关路由怎么配置”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够...
    99+
    2023-07-05
  • SpringCloud Gateway 路由配置定位原理是什么
    这篇文章主要介绍“SpringCloud Gateway 路由配置定位原理是什么”,在日常操作中,相信很多人在SpringCloud Gateway 路由配置定位原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对...
    99+
    2023-06-20
  • SpringCloud Gateway 路由配置定位原理分析
    环境:springcloud Hoxton.SR11 本节主要了解系统中的谓词与配置的路由信息是如何进行初始化关联生成路由对象的。每个谓词工厂中的Config对象又是如何被解析配置的...
    99+
    2022-11-12
  • 配置gateway+nacos动态路由管理流程
    目录配置gateway+nacos动态路由第一步:首先是设置配置文件的配置列表第二步:配置监听nacos监听器第三步:配置nacos的yml文件nacos的智能路由实现与应用一. 概...
    99+
    2022-11-12
  • 解决SpringCloud Gateway配置自定义路由404的坑
    目录问题背景问题现象解决过程1 检查网关配置2 跟源码,查找可能的原因3 异常原因分析解决方法心得问题背景 将原有项目中的websocket模块迁移到基于SpringCloud Al...
    99+
    2022-11-12
  • SpringCloud Gateway路由组件怎么使用
    这篇文章主要介绍“SpringCloud Gateway路由组件怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringCloud Gateway路由组件怎么使用”文章...
    99+
    2023-07-05
  • Nacos+Spring Cloud Gateway动态路由配置实现步骤
    目录前言一、Nacos环境准备1、启动Nacos配置中心并创建路由配置2、连接Nacos配置中心二、项目构建1、项目结构2、编写测试代码三、测试动态网关配置1、启动服务,观察注册中心...
    99+
    2022-11-12
  • Nacos+Spring Cloud Gateway动态路由如何配置实现
    小编给大家分享一下Nacos+Spring Cloud Gateway动态路由如何配置实现,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!前言  Nacos最近项目一直在使用,其简单灵活,支持更细粒度的命令空间,分组等为麻烦...
    99+
    2023-06-20
  • 自动注册Gateway网关路由怎么配置
    本文小编为大家详细介绍“自动注册Gateway网关路由怎么配置”,内容详细,步骤清晰,细节处理妥当,希望这篇“自动注册Gateway网关路由怎么配置”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。动态路由配置在启动...
    99+
    2023-07-05
  • 从0到1学SpringCloud之SpringCloud gateway网关路由配置示例详解
    目录一、前言二、代码演示1、配置文件2、pom依赖 3、创建微服务三、请求测试1、微服务请求转发2、第三方请求转发一、前言 微服务中经常用到gateway作为网关,它有什么...
    99+
    2023-05-14
    SpringCloud gateway网关路由 SpringCloud gateway网关路由配置 SpringCloud gateway
  • SpringCloud GateWay网关怎么配置
    本文小编为大家详细介绍“SpringCloud GateWay网关怎么配置”,内容详细,步骤清晰,细节处理妥当,希望这篇“SpringCloud GateWay网关怎么配置”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢...
    99+
    2023-06-30
  • springcloud gateway怎么实现路由和负载均衡
    这篇文章将为大家详细讲解有关springcloud gateway怎么实现路由和负载均衡,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。简介:gateway主要是做路由 负载,过滤 主要是替代zuul 1....
    99+
    2023-06-20
  • 详解自动注册Gateway网关路由配置
    目录动态路由配置基于yml配置文件基于Bean加载路由自动注册路由代码实现其他微服务的配置Gateway网关配置动态路由配置 在启动网关服务后,将无法修改路由配置。若有新服务上线的...
    99+
    2023-03-19
    Gateway网关路由配置 Gateway 自动注册网关路由
  • Linux怎么配置静态路由
    Linux怎么配置静态路由,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。静态路由是一种路由的方式,路由项由手动配置,而非动态决定。与动态路由不同,静态路由是固定...
    99+
    2023-06-28
  • SpringCloudGateway动态路由配置详解
    目录路由动态路由模型实体类动态路径配置路由模型JSON数据路由 gateway最主要的作用是,提供统一的入口,路由,鉴权,限流,熔断;这里的路由就是请求的转发,根据设定好的某些条件...
    99+
    2023-03-19
    SpringCloud Gateway动态路由 SpringCloud Gateway
  • 如何配置OSPF动态路由
    小编给大家分享一下如何配置OSPF动态路由,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!OSPF开放式最短路径优先协议,是目前网络中应用最广泛的路由协议之一。属于...
    99+
    2023-06-27
  • gateway网关路由配置的方法是什么
    gateway网关路由配置可以通过以下几种方法进行:1. 配置文件:可以在gateway的配置文件中定义路由规则。通常使用YAML或...
    99+
    2023-09-18
    gateway
  • SpringCloud Gateway中怎么配置fastjson序列化验证
    本篇内容主要讲解“SpringCloud Gateway中怎么配置fastjson序列化验证”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringCloud Gateway中怎么配置fast...
    99+
    2023-06-05
  • vue后台管理怎么配置动态路由菜单
    本篇内容介绍了“vue后台管理怎么配置动态路由菜单”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!后台管理配置动态路由菜单前段时间做一个后台管...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作