Deer's blog

  • 首页

  • 关于

  • 标签

  • 归档

【java】HotSpot 虚拟机 java 对象分配与回收

发表于 2018-09-07

描述 HotSpot 虚拟机的对象分配与回收

阅读全文 »

【java】Java 引用

发表于 2018-09-07

比较 java 里各种引用的区别

阅读全文 »

【java】 java 运行时数据区域

发表于 2018-09-06

描述 java 运行时有哪些数据区

阅读全文 »

【分布式】 常见缓存问题

发表于 2018-09-04

缓存穿透

指使用不存在的 key 进行大量的高并发查询,导致缓存无法命中,每次的请求都穿透到后端数据库系统进行查询,使数据库压力增大直到被压死。处理方法有:

  • 将空值缓存
  • 检查 key 的合法性
  • 对服务设计限流和熔断

缓存并发

当一个缓存 key 过期时,因为访问这个缓存 key 的请求量比较大,多个请求同时发现缓存过期,因此多个请求会同时访问数据库来查询最新数据,并写回缓存。处理方法有:

  • 分布式锁,保证对于每个 key 同时只有一个线程去查询后端服务
  • 本地锁,同分布式锁,但只保证一个节点上不会有多个线程在更新
  • 软过期,对缓存中的数据设置失败时间,不是使用缓存服务提供的时间,而是业务层在数据中存储过期时间,由业务程序判断是否过期并更新,程序发现数据过期时再通过一定的策略保证只有一个线程更新缓存

缓存雪崩

服务器重启或者大量缓存集中在某一个时间段内失效。处理方法有:

  • 对不同的数据使用不同的失效时间

【分布式】 CAP 原理和最终一致性

发表于 2018-09-03

简单描述一下 CAP 原理

阅读全文 »

【数据库】 事务隔离级别说明

发表于 2018-09-03

比较不同的事务隔离级别

阅读全文 »

TCP 协议基础

发表于 2018-05-04

描述一些 TCP 基本特性

阅读全文 »

【java】 class 文件与 JDK 版本的对应关系

发表于 2018-04-29

使用 16 进制打开 .class 文件

java 类对照

图中红框中的代表版本号52.0
次版本号:00 00
主版本号:00 34

各个版本的对应关系如下表

JDK版本号 Class版本号 16 进制
1.6 50.0 00 00 00 32
1.7 51.0 00 00 00 33
1.8 52.0 00 00 00 34

【阅读笔记】 jdk12 juc 锁

发表于 2018-04-08

分析 java.util.concurrent 中的锁如何实现

阅读全文 »

【java】线程

发表于 2018-04-07

描述 java 线程的基本概念

阅读全文 »
1…56

Deer

60 日志
23 标签
© 2020 Deer
由 Hexo 强力驱动 v3.8.0
|
主题 – NexT.Gemini v7.1.2