当前位置: 首页 > wzjs >正文

网站制作报价大约成都网站建设团队

网站制作报价大约,成都网站建设团队,商标注册网上申请,滕州疫情风险区域动态路由的核心需求:在不重启网关的情况下,实时修改路由规则。以下是 4 种实现方案: 方案 1:基于内存的动态路由(RefreshRoutesEvent) 适用场景:临时修改,重启失效 Autowired pri…

动态路由的核心需求:在不重启网关的情况下,实时修改路由规则。以下是 4 种实现方案:

方案 1:基于内存的动态路由(RefreshRoutesEvent)

适用场景:临时修改,重启失效

@Autowired
private RouteDefinitionWriter routeDefinitionWriter;// 添加路由
public void addRoute(RouteDefinition definition) {routeDefinitionWriter.save(Mono.just(definition)).subscribe();publisher.publishEvent(new RefreshRoutesEvent(this)); // 触发刷新
}// 删除路由
public void deleteRoute(String routeId) {routeDefinitionWriter.delete(Mono.just(routeId)).subscribe();publisher.publishEvent(new RefreshRoutesEvent(this));
}

缺点:路由数据不持久化

方案 2:数据库存储 + 定时轮询

实现步骤

  1. 创建路由表:

CREATE TABLE gateway_routes (id VARCHAR(50) PRIMARY KEY,uri VARCHAR(100),predicates JSON,filters JSON,`order` INT
);

  2. 自定义 RouteDefinitionRepository

@Component
public class JdbcRouteDefinitionRepository implements RouteDefinitionRepository {@Autowiredprivate RouteDao routeDao; // 自定义DAO@Overridepublic Flux<RouteDefinition> getRouteDefinitions() {return Flux.fromIterable(routeDao.findAll());}
}

 3. 配置定时刷新(可选):

@Scheduled(fixedRate = 30000)
public void refreshRoutes() {publisher.publishEvent(new RefreshRoutesEvent(this));
}
方案 3:Nacos 配置中心动态监听

实现步骤

  1. 添加依赖:

<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

  2. 在Nacos创建配置(Data ID: gateway-routes.json):

[{"id": "user-service","predicates": [{"name": "Path", "args": {"pattern": "/user/**"}}],"uri": "lb://user-service","filters": []
}]

  3.配置监听:

@RefreshScope
@Configuration
public class NacosDynamicRoutes {@Value("${spring.cloud.gateway.routes}")private String routesConfig;@Beanpublic RouteLocator routeLocator(RouteLocatorBuilder builder) {// 解析JSON配置构建路由return builder.routes().build();}
}
方案 4:Redis Pub/Sub 实时通知

实现步骤

  1. 定义Redis消息监听:

@Component
public class RouteUpdateListener {@Autowiredprivate ApplicationEventPublisher publisher;@Beanpublic RedisMessageListenerContainer container(RedisConnectionFactory factory) {RedisMessageListenerContainer container = new RedisMessageListenerContainer();container.addMessageListener((message, pattern) -> {publisher.publishEvent(new RefreshRoutesEvent(this));}, new ChannelTopic("gateway-routes-update"));return container;}
}

  2.修改路由时发布消息: 

redisTemplate.convertAndSend("gateway-routes-update", "refresh");

方案对比

方案实时性持久化复杂度适用场景
内存刷新开发测试
数据库存储中小规模生产环境
Nacos配置中心阿里云体系
Redis Pub/Sub极高高并发分布式系统

 

http://www.dtcms.com/wzjs/198077.html

相关文章:

  • wordpress首页怎么控制厦门百度关键词seo收费
  • 做网站需要哪些证书南宁网站推广营销
  • 网站做游戏活动最新新闻
  • 足球网站建设搜索百度下载安装
  • 做网站日入100十大骗子教育培训机构
  • 门户网站微信服务号建设方案国外b站浏览器
  • 网站建设需求模板下载做电商一个月能挣多少钱
  • 保定建站模板搭建郑州关键词排名公司电话
  • 做网站哪些公司wordpress建站
  • 濮阳哪里做网站郑州seo全网营销
  • wordpress 文章之显示标题河南智能seo快速排名软件
  • php网站开发设计企业培训课程体系
  • 新冠变异毒株最新消息seo编辑是干什么的
  • web网站开发文档模板移动端优化
  • 做的比较好的小众网站网络优化公司有哪些
  • 电商模板网站微信营销的方法有哪些
  • 做刷网站怎么赚钱网站排名优化师
  • 帝国cms 做的博客网站郴州网络推广公司排名
  • 辽宁建设工程信息网投标流程沈阳seo技术
  • wordpress 企业网站主题seo和sem是什么意思
  • 做公司官网找谁济南网站优化
  • 做殡葬名片的网站公司网络推广方法
  • soho外贸网站建设大地seo视频
  • 男女做暖暖的试看网站酥酥影视贵阳网络推广外包
  • 电梯网站建设上海抖音seo公司
  • html网页制作总结网站seo标题优化技巧
  • 成都本地网站建站网站关键词优化
  • 丽水网站建设公司市场营销策略有哪些
  • 私服网站如何做seo网络推广外包公司排名
  • 做网站就上房山华网天下天津快速关键词排名