dubbo 5 消费端声明式缓存
为了进一步提高消费者对用户的响应速度,减轻提供者的压力,Dubbo提供了基于结果的声明式缓存。该缓存是基于消费者端的,所以使用很简单,只需修改消费者配置文件,与提供者无关
一、Dubbo中缓存策略
- lru 基于最近最少使用原则删除多余缓存,保持最热的数据被缓存。
- threadlocal 当前线程缓存,比如一个页面渲染,用到很多portal,每个portal都要去查用户信息,通过线程缓存,可以减少这种多余访问。
- jcache 与JSR107集成,可以桥接各种缓存实现。
二、创建消费者07-consumer-cache
(1) 创建工程
直接复制02-consumer-zk工程,并命名为07-consumer-cache
(2) 修改消费者配置文件
类级别
方法级别
(3) 修改RunConsumer类
4)默认缓存1000个结果
默认可以缓存1000个结果。若超出1000,将采用LRU策略来删除缓存,以保证最热的数据被缓存。注意,该删除缓存的策略不能修改。
直接在07-consumer-cache工程中创建ConsumerRun2类
三、创建生成者(服务提供方)07-provider-cache
(1) 创建工程
直接复制02-provider-zk工程,并命名为07-provider-cache
(2) 修改配置文件
(3) 实现类
四、效果
(1)缓存测试
服务提供方只被调用了2次,其余2次因为已经缓存了,所以直接返回了缓存数据
(2)缓存个数测试
超过1000的被挤掉了,新数据加入