1月28日java假期学习读书笔记
一、学习目标
了解Spring Cache的基本概念和使用方法。
掌握如何在Spring Boot中集成缓存(如Redis或Caffeine)。
了解分布式追踪的基本概念和应用场景。
学习如何在Spring Boot中集成Spring Cloud Sleuth实现分布式追踪。
通过实际练习,实现一个简单的缓存和分布式追踪示例。
二、学习内容
(一)Spring Cache基础
-
缓存的概念
缓存是一种优化技术,用于存储重复使用的数据,减少对数据库或其他资源的访问,从而提高应用性能。
常见的缓存解决方案包括内存缓存(如Caffeine)、分布式缓存(如Redis)等。 -
Spring Cache的使用
Spring Cache通过注解(如@Cacheable、@CachePut、@CacheEvict)简化了缓存操作。
支持多种缓存实现,如Caffeine、Redis等。 -
集成Caffeine缓存
添加依赖:
xml
复制
org.springframework.boot
spring-boot-starter-cache
com.github.ben-manes.caffeine
caffeine
启用缓存:
java
复制
@Configuration
@EnableCaching
public class CacheConfig {
}
使用@Cacheable注解:
java
复制
@Service
public class UserService {
@Cacheable(value = "userCache", key = "#id")
public User getUserById(Long id) {
// 模拟从数据库获取用户
System.out.println("Fetching user from database...");
return new User(id, "Alice", 25);
}
}
(二)Spring Cloud Sleuth基础 -
分布式追踪的概念
分布式追踪用于监控和分析分布式系统中的请求路径,帮助开发者诊断问题和优化性能。
常见的追踪系统包括Zipkin、Sleuth等。 -
Spring Cloud Sleuth的集成
添加依赖:
xml
复制
org.springframework.cloud
spring-cloud-starter-sleuth
org.springframework.cloud
spring-cloud-starter-zipkin
配置Zipkin服务器:
可以通过Docker快速启动Zipkin服务:
bash
复制
docker run -d -p 9411:9411 openzipkin/zipkin
配置应用:
properties
复制
spring.sleuth.sampler.probability=1.0 # 设置采样率
spring.zipkin.base-url=http://localhost:9411
使用Sleuth:
Sleuth会自动为每个请求生成追踪ID,并记录日志。
(三)实际练习:实现一个简单的缓存和分布式追踪示例 -
创建用户服务
java
复制
@RestController
public class UserController {
@Autowired
private UserService userService;@GetMapping("/user/{id}")
public User getUserById(@PathVariable Long id) {
return userService.getUserById(id);
}
} -
运行和测试
启动应用后,访问http://localhost:8080/user/1,观察控制台输出。
查看Zipkin界面(http://localhost:9411/zipkin/),检查追踪信息。
三、学习心得
缓存的重要性
缓存可以显著减少对数据库的访问,提高应用性能。
Spring Cache通过注解简化了缓存操作,支持多种缓存实现。
分布式追踪的作用
分布式追踪可以帮助开发者快速定位问题,优化系统性能。
Spring Cloud Sleuth与Zipkin集成后,可以方便地追踪请求路径。
实践的重要性
通过实际编写代码,我更好地理解了缓存和分布式追踪的实现方法。
实践可以帮助快速发现和解决问题,加深对知识点的理解。
浙公网安备 33010602011771号