SpringBoot+Nacos+Gateway动态路由

本文介绍了如何使用SpringBoot、Nacos和Gateway构建动态路由系统。重点讲解了在DynamicRouteConfiguration中处理Nacos中yaml格式配置转换为json格式的细节,包括replaceContext方法的作用以及在源码基础上的必要修改,确保路由配置的正确加载。
摘要由CSDN通过智能技术生成

SpringBoot+Nacos+Gateway动态路由

前言:
动态路由: 可见标题 架构选择nacos作为服务注册,GateWay作为网关两者都是ali。那nacos咱们都知道可作为配置中心
来使用且可动态,那做一个动态路由我觉得还是有些必要性的,不至于每次增加路由都要重新部署服务。之前写过一篇动态路由的文章,但那个可能使用的cloud,springboot版本低 以至于到现在的版本监听不到,而且那个是json版本。所以写下这篇文章。
上一篇动态路由地址: 动态路由

‘新版’动态路由(yaml格式)

版本信息:springboot:2.2.2.RELEASE------com.alibaba.cloud: 2.2.4.RELEASE-----org.springframework.cloud:Hoxton.RELEASE

上代码

@Data
@Component
@ConfigurationProperties(prefix = "broad.dynamic.route")//yml配置信息,下文给出
@ConditionalOnBean(DynamicRouteConfiguration.class)
public class DynamicRouteProperties {
   
    /**
     * nacos 配置管理  dataId
     */

    private String dataId;
    /**
     * nacos 配置管理 group
     */

    private String group;
    /**
     * nacos 服务地址
     */

    private String ipAddr;

    /**
     * 启动动态路由的标志,默认关闭
     */

    private boolean enabled = false;
}

DynamicRouteConfiguration

@Configuration
@ConditionalOnProperty(name = "broad.dynamic.route.enabled", matchIfMissing = true)
public class DynamicRouteConfiguration implements ApplicationEventPublisherAware {
   
    Logger log= LoggerFactory.getLogger(DynamicRouteConfiguration.class);

    //namespace名称
    private final static String NAMESPACE="8359a8d9-03ab-4574-9627-9456351c0c01";
    //nacos账号密码
    private final static String USERNAME_PASSWORD="nacos";
    //截取字符
    private final static String REPLACE="routes:"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值