千家信息网

spring cloud apigateway与consul的集成分析

发表于:2025-12-04 作者:千家信息网编辑
千家信息网最后更新 2025年12月04日,本篇内容介绍了"spring cloud apigateway与consul的集成分析"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!
千家信息网最后更新 2025年12月04日spring cloud apigateway与consul的集成分析

本篇内容介绍了"spring cloud apigateway与consul的集成分析"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

spring cloud gateway 集成 consul

工程pom.xml 引入 依赖

    org.springframework.cloud    spring-cloud-starter-gateway    org.springframework.cloud    spring-cloud-starter-consul-discovery    org.springframework.boot    spring-boot-starter-actuator

在启动类中增加 注解 @EnableDiscoveryClient

在配置中增加网关配置

# tomcat 配置server:  port: 5000# 服务名称spring:  application:    name: api-gatewaycloud:  # consul server地址  consul:    host: localhost    port: 8500    discovery:    # 健康检查 一定要配置 结合 spring-boot-starter-actuator 使用      health-check-path: /actuator/health      health-check-interval: 10s# 网关配置gateway:  filter:    remove-non-proxy-headers:      headers:      - dummy  discovery:      locator:            enabled: true  routes:  - id: orderApi    # consul 获取的服务名称 lb -> load balance    uri: lb://order-server    predicates:    - Path=/api/order/**    # 过滤 去掉路径中的 /orderApi    filters:    - StripPrefix=1  - id: commodityApi    # consul 获取的服务名称 lb -> load balance    uri: lb://commodity-server    predicates:    - Path=/api/commodity/**    # 过滤 去掉路径中的 /api    filters:    - StripPrefix=1

gateway 自带限流功能 需要 redis 依赖支持

    org.springframework.boot    spring-boot-starter-data-redis-reactive

配置需要同步修改

routes:- id: payApi# consul 获取的服务名称 lb -> load balance  uri: lb://pay-server  predicates:  - Path=/api/pay/**# 过滤 去掉路径中的 /orderApi  filters:  - StripPrefix=1# 限流操作  - name: RequestRateLimiter    args:      # 允许用户每秒处理多少个请求      redis-rate-limiter.replenishRate: 10      # 令牌桶的容量,允许在一秒钟内完成的最大请求数      redis-rate-limiter.burstCapacity: 20      # ip 限流 bean      key-resolver: "#{@ipKeyResolver}"

注入自定义限流类型(针对 ip 限流)

@Beanpublic KeyResolver ipKeyResolver() {    return new KeyResolver() {        @Override        public Mono resolve(final ServerWebExchange exchange) {            return Mono.just(exchange.getRequest().getRemoteAddress().getHostName());        }    };}

在集成过程中有个深坑,就是配置限流操作的时候,本地的redis 没有启动,导致consul的helath check一直是down状态

要解决health check问题 需要把 health check的详细返回打开, 再次调用/actuator/health接口会把详情返回了。

management:  endpoint:    health:      show-details: always

"spring cloud apigateway与consul的集成分析"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

配置 名称 服务 路径 分析 内容 更多 知识 网关 过程 实用 最大 健康 学有所成 接下来 令牌 再次 功能 困境 地址 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发项目预算表格式 数据库怎么查询某架构下的表 网络安全拓扑图入门 外语社交软件开发 华为云服务器怎么放开全部端口 javabean数据库 2018年浪潮服务器市场占有率 服务器只亮两个灯连接不上网 单位学习网络安全心得体会 中国科技发展互联网 如何新建数据库sql2008 聚从网络技术有限公司 东丽区品牌软件开发诚信经营 物联网络安全问题及其对策 小美网络技术 契航网络技术有限公司 软件开发立项报告设计经理 电商社交app软件开发报价 财务软件的服务器平时要不要关机 如何加强单位网络安全的措施 数据库的硬盘结构为611 linux服务器查看内存制造商 方舟手游服务器免费招管理不花钱 数据库技术支持前景 兴义市易信软件开发中心 实时查询数据库显示 河南前端软件开发服务 北大软微金融大数据库 网络安全风险针对人 杀毒时代网络安全
0