当前位置:
首页
文章
前端
详情

Srping cloud gateway 实现动态路由(MySQL持久化+redis分布式缓存) 最新

摘要

本文讲解在Spring Cloud 中如何通过MySQL和redis实现动态路由配置,以及路由信息持久化在MySQL中,同时使用Redis作为分布式路由信息缓存。

无广告原文链接: Srping cloud gateway 实现动态路由(MySQL持久化+redis分布式缓存)

正文

Sping Cloud gateway 中自己集成了一套基于配置文件的一套路由规则,该规则需要配置在application.yml/properties文件中,如果在使用配置文件时想要动态化实现路由配置,需要网关结合Spring cloud config一起来使用(路由配置在config配置中心中,随着config修改路由信息,gateway会自动刷新而不需要重启刷新路由)。

本文将会在上述基础之上修改路由的存储方式为MySQL,并且把路由信息缓存在redis中,当数据库中的路由信息发生变化时, 可以主动通知网关去重新加载路由信息。

我们在使用此方法改造前,请去掉您的配置文件中配置的路由规则

注意,本部分代码需要使用的部分依赖为:

  com.alibaba   fastjson   1.2.47   org.springframework.cloud   spring-cloud-starter-gateway   org.springframework.boot   spring-boot-starter-data-redis   org.projectlombok   lombok   true

首先我们需要实现接口,重写路由加载方法(详细代码请看原文)

RouteDefinitionRepository

上述代码中,提供了从redis加载路由信息到Flux中,新增路由(redis)、删除路由(redis)的方法。

下面为项目初始化时加载数据库的路由到redis,以及查询所有路由信息( 从redis)、刷新Flux中路由信息的方法,此类需要实现(详细代码请看原文)

ApplicationEventPublisherAware, CommandLineRunner

同时还包含实体类、表结构、以及访问controller

免责申明:本站发布的内容(图片、视频和文字)以转载和分享为主,文章观点不代表本站立场,如涉及侵权请联系站长邮箱:xbc-online@qq.com进行反馈,一经查实,将立刻删除涉嫌侵权内容。