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的被挤掉了,新数据加入

原文地址:https://www.cnblogs.com/hup666/p/13466581.html