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

网站上传文件 ftp做网站都用到哪些软件

网站上传文件 ftp,做网站都用到哪些软件,公司牌子设计图,网络舆情监测适合女生嘛网关-微服务网关实现 在 Spring Boot 中使用 Spring Cloud Gateway 实现微服务网关,是构建微服务架构中非常常见的做法。它提供了强大的路由、过滤、限流、熔断等功能,且与 Spring Cloud 生态(如 Nacos、Eureka、Sentinel 等)集成…

网关-微服务网关实现

在 Spring Boot 中使用 Spring Cloud Gateway 实现微服务网关,是构建微服务架构中非常常见的做法。它提供了强大的路由、过滤、限流、熔断等功能,且与 Spring Cloud 生态(如 Nacos、Eureka、Sentinel 等)集成良好。


一、开发步骤总览

步骤内容
1️⃣创建 Spring Boot 项目并引入依赖
2️⃣配置服务注册中心(如 Nacos)
3️⃣配置网关路由规则(YAML)
4️⃣自定义全局过滤器(如鉴权)
5️⃣配置限流、熔断等高级功能(可选)
6️⃣启动网关并测试路由功能

二、具体代码实现

1️⃣ 创建 Spring Boot 项目并引入依赖(pom.xml

<dependencies><!-- Spring Cloud Gateway --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency><!-- 服务注册发现(以 Nacos 为例) --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!-- WebFlux(网关基于 WebFlux) --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-webflux</artifactId></dependency><!-- 日志、工具类 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency>
</dependencies>

2️⃣ 配置服务注册中心(如 Nacos)

# application.yml
server:port: 8080spring:application:name: gateway-servicecloud:nacos:discovery:server-addr: 127.0.0.1:8848  # Nacos 地址gateway:discovery:locator:enabled: true  # 开启服务发现自动路由routes:- id: user-serviceuri: lb://user-servicepredicates:- Path=/api/user/**filters:- StripPrefix=1- AuthFilter- id: order-serviceuri: lb://order-servicepredicates:- Path=/api/order/**filters:- StripPrefix=1
  • gateway.discovery.locator.enabled: true:自动将服务名作为路径前缀。
  • routes:手动配置路由规则,更灵活。

3️⃣ 自定义全局过滤器(鉴权示例)

@Component
public class AuthFilter implements GlobalFilter, Ordered {@Overridepublic Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {ServerHttpRequest request = exchange.getRequest();String token = request.getHeaders().getFirst("Authorization");if (token == null || !token.startsWith("Bearer ")) {exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);return exchange.getResponse().setComplete();}// 可以在这里验证 token(如 JWT 解析)String userId = parseToken(token);// 将用户信息放入请求头,供下游服务使用ServerHttpRequest newRequest = request.mutate().header("X-User-ID", userId).build();return chain.filter(exchange.mutate().request(newRequest).build());}private String parseToken(String token) {// 简化处理,实际应使用 JWT 解析return "user123";}@Overridepublic int getOrder() {return 0; // 过滤器顺序}
}
  • 实现 GlobalFilter 接口,定义全局过滤逻辑。
  • 可用于鉴权、日志、请求头处理等。

4️⃣ 配置限流(可选)

使用 Redis + RequestRateLimiter 实现限流:

spring:cloud:gateway:routes:- id: user-serviceuri: lb://user-servicepredicates:- Path=/api/user/**filters:- StripPrefix=1- name: RequestRateLimiterargs:redis-rate-limiter.replenishRate: 10  # 每秒补充 10 个令牌redis-rate-limiter.burstCapacity: 20 # 最大突发请求 20 个key-resolver: "#{@userKeyResolver}"  # 使用自定义 Key 解析器
@Bean
public KeyResolver userKeyResolver() {return exchange -> Mono.just(exchange.getRequest().getHeaders().getFirst("X-User-ID"));
}
  • 使用 Redis 实现分布式限流。
  • 可防止恶意刷接口、保护后端服务。

5️⃣ 配置熔断(可选)

spring:cloud:gateway:routes:- id: order-serviceuri: lb://order-servicepredicates:- Path=/api/order/**filters:- StripPrefix=1- name: Hystrixargs:name: fallbackCommandfallbackUri: forward:/fallback
@RestController
public class FallbackController {@GetMapping("/fallback")public Mono<String> fallback() {return Mono.just("服务暂时不可用,请稍后再试");}
}
  • 当服务不可用时,返回默认响应。
  • 提高系统容错能力。

三、启动网关并测试

1. 启动网关服务

mvn spring-boot:run

2. 测试请求

curl -H "Authorization: Bearer abc123" http://localhost:8080/api/user/info
  • 请求将被网关路由到 user-service
  • 经过 AuthFilter 鉴权
  • 如果服务正常,返回用户信息
  • 如果服务异常,触发熔断机制

四、完整流程图

[客户端请求] → [网关]↓
[鉴权过滤器 AuthFilter]↓
[限流过滤器 RequestRateLimiter]↓
[熔断过滤器 Hystrix]↓
[路由到对应微服务(user-service / order-service)]

五、总结:Spring Cloud Gateway 的核心功能

功能示例
路由转发Path=/api/user/** → user-service
鉴权过滤自定义 AuthFilter 校验 Token
限流控制RequestRateLimiter + Redis
熔断降级Hystrix + fallback
日志记录可通过 Filter 实现
负载均衡默认集成 Ribbon,支持多个实例
服务发现支持 Nacos、Eureka、Consul 等

六、推荐使用场景

  • 微服务数量较多,需要统一入口管理
  • 需要统一鉴权、限流、熔断
  • 使用 Spring Cloud 技术栈
  • 需要高并发、高性能的 API 管理能力

通过以上步骤,可以快速搭建一个基于 Spring Boot + Spring Cloud Gateway 的微服务网关,实现服务路由、权限控制、限流熔断等核心功能。这个网关可以作为整个微服务架构的统一入口,提升系统的安全性、可维护性和扩展性。

http://www.dtcms.com/a/440899.html

相关文章:

  • 网站建设互联网营销营销推广广东百度seo
  • 出格网站建设公司重庆app下载注册
  • 个人做网站备案多少钱东安网站建设
  • 纯html网站网站开发如何设置背景图片
  • 网站设计主题选择网站建设58
  • 住房住房和城乡建设部网站app制作教程电脑流程
  • 河北保定网站建设鞍山58同城二手房出售
  • 网站与网页国家城乡住房建设部网站
  • 大型综合新闻门户网站织梦模板wordpress媒体文件
  • 如何做网站关键词霸屏可以访问的国外网站
  • 10黄页网站建设车之家汽车官网
  • 网站内容有哪些我市强化属地网站建设
  • 如何做网页网站如何自定义wordpress登录
  • wordpress做小说网站网站开发工程师和前端
  • 尺寸在线做图网站wdcp wordpress伪静态
  • 网站色彩搭配如何做企业网页
  • 麻涌镇做网站宁波做网站十大公司哪家好
  • 网站建设属于哪种公司怎么做公益网站
  • 网站建设辶首先金手指十四那个网站域名估价好
  • 谢岗镇做网站衡水做wap网站
  • 网站的建设可以起到什么作用是什么原因服装网站建设准备
  • 网站开发公司怎么建服务器昆明网站建设搜q479185700
  • 网站建设里程碑网络营销的案例有哪些
  • 好看 大气的网站百度旗下产品
  • 网站themes目录wordpress装饰设计主题
  • 网站注册费用基于ssh框架的网站开发流程
  • 福州百度网站排名优化7zwd一起做网店官网
  • 全国水利建设市场信用信息平台网站做网站那个平台好
  • 佛山做外贸网站哪家好品牌全案
  • 北京网站建设价格营销型 展示类网站模板