- 博客(4)
- 资源 (53)
- 收藏
- 关注
原创 缓存设计要点-缓存穿透、缓存击穿和缓存雪崩实践
我们使用缓存的主要目是提升查询速度和保护数据库等稀缺资源不被占满。而缓存最常见的问题是缓存穿透、击穿和雪崩,在高并发下这三种情况都会有大量请求落到数据库,导致数据库资源占满,引起数据库故障。今天我主要分享一下layering-cache缓存框架在这个三个问题上的实践方案。概念缓存穿透在高并发下,查询一个不存在的值时,缓存不会被命中,导致大量请求直接落到数据库上,如活动系统里面查询一个不存在的......
2018-12-29 10:27:03 1650
原创 系统重构心得
重构概念在不改变软件可观察行为的前提下,对软件内部结构的一种调整,提高其可理解性,降低修改成本。重构节奏测试、小修改、测试、小修改…正是这种节奏让重构得以快速安全而安全的前行。构筑测试体系如果想要重构,我们必须拥有一个良好的测试环境。编写优良的测试程序,可以极大的提升编程速度和代码质量,即使不进行重构也一样如此。每当我们收到一个bug报告时,请先写一个单元测试来暴露bug。测试是一种...
2018-12-25 00:28:41 419 1
原创 CompletableFuture get方法一直阻塞或抛出TimeoutException
问题描述最近刚刚上线的服务突然抛出大量的TimeoutException,查询后发现是使用了CompletableFuture,并且在执行future.get(5, TimeUnit.SECONDS);时抛出了TimeoutException异常,导致接口响应很慢进而影响了其他系统的调用。问题分析首先我们知道CompletableFuture的get()方法值会阻塞主线程,直到子线程执行任务...
2018-12-16 01:32:26 19507 4
原创 Hystrix实现主线程和子线程的ThreadLocal上下文传递
问题描述我在使用日志链路追踪的时候(基于SLF4J MDC机制实现日志的链路追踪),我发现使用Hystrix线程池隔离的时候,我不能将子线程没有复制主线程的MDC上下文(Slf4j MDC机制),导致日志链路断掉。问题分析Hystrix的线程池隔离是使用HystrixThreadPool来实现的。而获取HystrixThreadPool是在HystrixConcurrencyStrateg...
2018-12-16 01:30:31 2542 2
consul_1.7.3_windows\mac\linux.zip
2020-06-02
git-flow-plus-4idea-1.0.7.zip
2020-05-07
ScreenToGif.rar
2020-03-13
logback 中文手册
2017-03-30
汽车电子控制系统实例
2012-08-25
CAN技术规范
2012-08-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人