news 2026/7/12 18:12:49

微服务细节之——“动态路由”

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
微服务细节之——“动态路由”

我们知道,配置管理,就是在·openfeign配置列表中点击+新建一个配置,然后在bootstrap.yaml拉取共享配置。

于是我们想到,路由是不是也可以这样?

其实是可以的。不过路由的变化,网关的路由配置全部是在项目启动时由org.springframework.cloud.gateway.route.CompositeRouteDefinitionLocator在项目启动的时候加载,并且一经加载就会缓存到内存中的路由表内(一个Map),所以不是仅仅热更新配置就够了,还要检测到路由配置变了后,去手动更行路由表。

  • 如何监听Nacos配置变更?

先连接nacos,通过NacosFactory.createConfigService(properties);拿到configService。再通过addListener方法,就能再里面实现监听后需要进行的操作。

String serverAddr = "{serverAddr}"; String dataId = "{dataId}"; String group = "{group}"; // 1.创建ConfigService,连接Nacos Properties properties = new Properties(); properties.put("serverAddr", serverAddr); ConfigService configService = NacosFactory.createConfigService(properties); // 2.读取配置 String content = configService.getConfig(dataId, group, 5000); // 3.添加配置监听器 configService.addListener(dataId, group, new Listener() { @Override public void receiveConfigInfo(String configInfo) { // 配置变更的通知处理 System.out.println("recieve1:" + configInfo); } @Override public Executor getExecutor() { return null; } });
  • 如何把路由信息更新到路由表?

用到RouteDefinitionWriter里的两个方法

/** * 更新路由到路由表,如果路由id重复,则会覆盖旧的路由 */ Mono<Void> save(Mono<RouteDefinition> route); /** * 根据路由id删除某个路由 */ Mono<Void> delete(Mono<String> routeId);
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/9 3:18:22

ExcalidrawDIY项目计划:手工制作步骤分解

ExcalidrawDIY项目计划&#xff1a;手工制作步骤分解 在远程协作日益成为常态的今天&#xff0c;团队沟通中的“信息落差”问题愈发突出——设计师苦于无法快速表达脑中构图&#xff0c;产品经理担心技术实现偏离预期&#xff0c;而工程师则疲于在文字需求和视觉呈现之间反复对…

作者头像 李华
网站建设 2026/7/8 6:59:16

Excalidraw如何助力敏捷开发中的Sprint规划?

Excalidraw如何助力敏捷开发中的Sprint规划&#xff1f; 在一次典型的远程Sprint规划会议上&#xff0c;你是否经历过这样的场景&#xff1a;产品经理在共享屏幕上展示一张密密麻麻的PPT流程图&#xff0c;开发者皱着眉头追问“这个接口到底什么时候调用&#xff1f;”&#xf…

作者头像 李华
网站建设 2026/7/12 10:18:25

Excalidraw技术支持渠道:社区/论坛/Discord入口

Excalidraw技术支持渠道&#xff1a;社区/论坛/Discord入口 在远程协作成为常态的今天&#xff0c;团队对可视化工具的需求早已超越“画图”本身——我们需要的是能快速表达想法、激发创意火花&#xff0c;并支持多人实时参与的数字白板。Excalidraw 正是在这样的背景下脱颖而…

作者头像 李华
网站建设 2026/7/12 7:04:52

Excalidraw数字花园实践:渐进式笔记创作

Excalidraw与数字花园&#xff1a;让知识在草图中生长 在一场远程产品评审会上&#xff0c;团队卡在了系统架构的描述上。产品经理口述着“用户请求先经过网关&#xff0c;然后分流到认证服务和配置中心”&#xff0c;但文字越堆越多&#xff0c;沟通却越来越模糊。直到有人打开…

作者头像 李华
网站建设 2026/7/12 7:02:04

OpenDDS性能测试框架Bench

1、性能测试框架Bench简介 1.1 简介 OpenDDS性能测试框架Bench,基于config配置文件,来设定消息传输协议和测试场景,并通过测试结果文件进行分析和汇总。 1.2 测试配置 性能测试框架Bench的配置,分传输协议配置、测试场景配置两类。 1.2.1 传输协议配置 发现模式

作者头像 李华