一,为什么要使用caffeine做本地缓存? 1,spring boot默认集成的进程内缓存在1.x时代是guava cache 在2.x时代更新成了caffeine, 功能上差别不大,但后者在性能上更胜一筹, 使用caffeine做本地缓存,取数据可以达到微秒的级别, 一次取数据用时经常不足1毫秒, 这样可以及时响应请求,在高并发的情况下把请求拦截在上游, 避免把压力带到数据库, 所以我们在应用中集成它对于系统的性能有极大的提升 2,与之相比,即使是本地的redis, 响应时间也比进程内缓存用…
随着时间的积累,应用的使用用户不断增加,数据规模也越来越大,往往数据库查询操作会成为影响用户使用体验的瓶颈,此时使用缓存往往是解决这一问题非常好的手段之一.Spring 3开始提供了强大的基于注解的缓存支持,可以通过注解配置方式低侵入的给原有Spring应用增加缓存功能,提高数据访问性能. 在Spring Boot中对于缓存的支持,提供了一系列的自动化配置,使我们可以非常方便的使用缓存.下面我们通过一个简单的例子来展示,我们是如何给一个既有应用增加缓存功能的. 快速入门 下面我们将使用使用Spr…
1.1 关于Caffeine Cache ​ Google Guava Cache是一种非常优秀本地缓存解决方案,提供了基于容量,时间和引用的缓存回收方式.基于容量的方式内部实现采用LRU算法,基于引用回收很好的利用了Java虚拟机的垃圾回收机制.其中的缓存构造器CacheBuilder采用构建者模式提供了设置好各种参数的缓存对象,缓存核心类LocalCache里面的内部类Segment与jdk1.7及以前的ConcurrentHashMap非常相似,都继承于ReetrantLock,还有六个队…
一.序言 Caffeine是一个进程内部缓存框架. 对比Guava Cache Caffeine是在Guava Cache的基础上做一层封装,性能有明显提高,二者同属于内存级本地缓存.使用Caffeine后无需使用Guava Cache,从并发的角度来讲,Caffeine明显优于Guava,原因是使用了Java 8最新的StampedLock锁技术. 二.缓存简介 (一)缓存对比 从横向对常用的缓存进行对比,有助于加深对缓存的理解,有助于提高技术选型的合理性.下面对比三种常用缓存:Redis.E…
一.序言 Caffeine是一个进程内部缓存框架,使用了Java 8最新的[StampedLock]乐观锁技术,极大提高缓存并发吞吐量,一个高性能的 Java 缓存库,被称为最快缓存. 二.缓存简介 (一)缓存对比 从横向对常用的缓存进行对比,有助于加深对缓存的理解,有助于提高技术选型的合理性.下面对比三种常用缓存:Redis.EhCache.Caffeine. 1.序列化 缓存 序列化 原因 Redis 必须实现序列化 进程间数据传输,因此必须实现序列化.大多数情况下涉及内网网络传输:作为缓存…
前言 最近在一个项目中需要用到本地缓存,在网上调研后,发现谷歌的Guva提供的cache模块非常的不错.简单易上手的api:灵活强大的功能,再加上谷歌这块金字招牌,让我毫不犹豫的选择了它.仅以此博客记录我在使用过程中的点滴. 什么是本地缓存 在我们的应用中,大部分的计算是昂贵的,而且是可复用的,并且计算结果不会经常发生改变.这时候我们就可以将这些昂贵的计算结果缓存到内存中,下次使用的时候直接取出即可,而不用重新计算.这样可以节省大量的cpu和内存资源,提高系统的吞吐量. 本地缓存作用就是提高系统…
一,为什么要更新caffeine缓存? 1,caffeine缓存的优点和缺点 生产环境中,caffeine缓存是我们在应用中使用的本地缓存, 它的优势在于存在于应用内,访问速度最快,通常都不到1ms就能做出响应, 缺点在于不方便管理,因为存在于多台负载均衡的web服务器上, 很难象管理redis缓存一样对它做出更新.删除. 2,通常我们会把caffeine缓存的时间设置为5分钟或10分钟, 但当有大型促销活动开始时,如果缓存还没过期, 则web服务显示的数据不会立刻得到更新, 我们如何更新多台w…
Actuator是spring boot项目中非常强大一个功能,有助于对应用程序进行监视和管理,通过 restful api请求来监管.审计.收集应用的运行情况,针对微服务而言它是必不可少的一个环节. spring 2.x actuator相对于spring 1.x actuator做了较大的改变. 如何做自己的服务监控?spring boot 1.x服务监控揭秘 ****提供了更多的endpoint管理 ID Description Enabled by default auditevents…
博客地址:http://www.moonxy.com 一.前言 Spring Cache 对 Cahce 进行了抽象,提供了 @Cacheable.@CachePut.@CacheEvict 等注解.Spring Boot 应用基于 Spring Cache,既提供了基于内存实现的缓存管理器,可以用于单体应用系统,也集成了 EhCache.Redis 等缓存服务器,可以用于大型系统或者分布式系统. 二.关于 Cache 应用系统需要通过 Cache 来缓存不经常改变的数据以提高系统性能和增加系统…
1.准备 下载可运行程序:http://www.mkyong.com/spring-boot/spring-boot-hello-world-example-jsp/ 2.添加服务监控依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> <scope>provid…