1月30日java假期学习读书笔记
一、学习目标
了解Spring Cloud Gateway的基本概念和使用方法。
掌握如何在Spring Boot中集成Spring Cloud Gateway实现API网关功能。
了解断路器模式的作用和应用场景。
学习如何在Spring Boot中集成Resilience4j实现断路器功能。
通过实际练习,构建一个简单的API网关和断路器示例。
二、学习内容
(一)Spring Cloud Gateway基础
- API网关的概念
API网关是微服务架构中的一个关键组件,作为系统的统一入口,负责请求路由、负载均衡、认证授权等功能。
它可以简化客户端与服务之间的通信,隐藏后端服务的复杂性。 - Spring Cloud Gateway简介
Spring Cloud Gateway是基于Spring WebFlux框架构建的API网关。
它支持动态路由、熔断、限流等功能。 - 搭建Spring Cloud Gateway
添加依赖:
xml
@SpringBootApplication
public class GatewayApplication {
public static void main(String[] args) {
SpringApplication.run(GatewayApplication.class, args);
}
}
(二)Resilience4j基础
- 断路器模式
断路器模式用于防止系统过载,当某个服务调用失败时,断路器会“断开”,避免调用方继续等待。
它可以提高系统的容错性和稳定性。 - Resilience4j简介
Resilience4j是一个轻量级的容错库,用于实现断路器、限流、重试等功能。
它与Spring Boot集成良好,支持注解和编程式配置。 - 集成Resilience4j
添加依赖:
xml
resilience4j.circuitbreaker.instances.user-service.registerHealthIndicator=true
resilience4j.circuitbreaker.instances.user-service.failureRateThreshold=50
resilience4j.circuitbreaker.instances.user-service.waitDurationInOpenState=10s
使用断路器注解:
java
@Service
public class UserService {
@CircuitBreaker(name = "user-service", fallbackMethod = "fallback")
public String getUserInfo() {
// 模拟调用外部服务
return "User Info";
}
public String fallback(Exception e) {
return "Fallback: User Service is down";
}
}
(三)实际练习:实现一个简单的API网关和断路器示例
- 启动API网关
启动Spring Cloud Gateway应用,访问http://localhost:8080/user/info,请求会被路由到后端服务。 - 集成断路器
在后端服务中集成Resilience4j,模拟服务故障,观察断路器的保护机制。 - 运行和测试
启动后端服务和API网关。
访问API网关,观察请求是否被正确路由。
模拟后端服务故障,观察断路器的保护效果。
三、学习心得
API网关的作用
API网关作为微服务架构的统一入口,简化了客户端与服务之间的通信。
Spring Cloud Gateway提供了强大的路由和过滤功能,支持动态配置。
断路器的重要性
断路器模式可以有效防止系统过载,提高系统的容错性和稳定性。
Resilience4j提供了轻量级的断路器实现,与Spring Boot集成良好。
实践的重要性
通过实际搭建API网关和集成断路器,我更好地理解了它们的使用方法。
实践可以帮助快速发现和解决问题,加深对知识点的理解。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律