深度解析 G1 垃圾收集器:化整为零,打破延迟与吞吐量的博弈
· 阅读需 6 分钟
在 JDK 1.7 时代作为重要进化特征登场,并最终在 JDK 9 中成功上位成为默认垃圾收集器,G1(Garbage-First)无疑是 JVM 垃圾回收史上的一个巨大里程碑。
在 JDK 1.7 时代作为重要进化特征登场,并最终在 JDK 9 中成功上位成为默认垃圾收集器,G1(Garbage-First)无疑是 JVM 垃圾回收史上的一个巨大里程碑。
在社交、O2O 等业务中,"查找附近的人" 是一个高频场景。大部分开发者第一反应是使用 Redis 从 3.2 版本引入的 GEO 数据结构。
在单机应用时代,一个 synchronized 或 ReentrantLock 就能解决多线程竞争共享资源的问题。但随着微服务架构的普及,应用被部署在多台服务器上,JVM 级别的本地锁就失效了——它只能保证单进程内的互斥。这时候,就需要一把"分布式锁"来保证跨进程、跨主机的互斥访问。
本文将带你深入了解分布式锁的常见实现方案,特别是 Redis 方案的演进,以及工业级组件 Redisson 的底层原理。
本文以 GitHub OAuth 为例,从原理到实践,全面讲解如何在 Spring Boot 项目中实现安全的第三方登录功能。