Java 中多参数对象的 Builder Pattern
如何使用 Builder Pattern 创建具有多个参数的对象,使其易读、不可变且带有验证,从手动编写到 Lombok @Builder 和 record。
如何使用 Builder Pattern 创建具有多个参数的对象,使其易读、不可变且带有验证,从手动编写到 Lombok @Builder 和 record。
理解 Kafka 如何将分区分配给消费者组,何时发生 Rebalance 以及如何在 Spring Boot 应用中减少 Rebalance 的影响。
使用 Saga 模式在多个微服务间保证数据最终一致性而无需 2PC,包含 Java 21 编排实现示例和测试方法。
通过 SET NX PX 和 Lua 脚本自己实现分布式锁,使用 Redisson 的 watchdog 机制,使用 Testcontainers 编写测试,以及避免常见错误。
了解 PostgreSQL 如何处理事务、四个隔离级别、丢失更新和写入偏差等现象,以及如何在 Spring Boot 中配置和重试。
拍卖系统设计案例分析:数据模型、API、通过条件更新处理并发出价、Redis Lua、防止抢拍和安全关闭拍卖。
理解和实现两个常见的缓存策略 cache-aside 和 write-through,以及如何在 Spring Boot 3 中选择合理的 TTL。
使用 Spring Boot、Kafka、Redis GEO 和 SSE 设计订单追踪和快递员实时位置系统的案例研究。分析并发冲突、数据一致性和突发流量处理。
文件存储系统设计案例:需求、数据模型、分块上传 API、共享、同步、处理并发冲突和流量突增
案例分析优惠券系统设计:防止秒杀时超售,使用原子UPDATE、Redis Lua、Kafka和带过期的保留机制。
News feed 设计案例研究:需求、规模、数据模型、API、fan-out on write 与 on read 比较、混合模型及处理明星用户、一致性、流量突增的方法
配置 acks、enable.idempotence、batch.size 和 linger.ms 来确保 Kafka producer 不丢失消息、不重复发送并达到高吞吐量。
通过 Redisson 在 Redis 上使用 Bloom 过滤器,阻止对不存在 key 的查询请求,防止它们穿透缓存并打到数据库。
使用 Spring Boot 3 中的 Redis Streams 和消费者组处理 at-least-once 事件,支持手动 ACK、重试待处理消息和死信队列。
使用 redis-cli、MEMORY USAGE、OBJECT FREQ 识别 Redis 中的 hot key 和 big key,以及通过 key sharding、UNLINK、本地缓存、key 复制等方式处理它们。
了解 Redis 如何通过 RDB 和 AOF 将数据写入磁盘、如何配置这些模式,以及识别即使启用了持久化也可能丢失数据的场景。
对比Redis与Spring Boot 3三种常见缓存策略:实现方法、优缺点、常见错误以及各自的适用场景。
了解Redlock算法,用Jedis自己实现,用Testcontainers编写测试,理解为什么Martin Kleppmann认为它不安全。
使用 Spring Boot 和 Kafka 实现 Saga orchestration 模式。预订机票、酒店、支付,以及在某一步失败时自动补偿。
使用 Confluent Schema Registry 与 Avro 和 Protobuf 在 Spring Boot 3 中控制 Kafka 消息格式,并安全地演进 schema