bladex2.5.0关于缓存的问题

Blade 未结 2 1887
Mr.
Mr. 2020-05-26 15:34

一、该问题的重现步骤是什么?

1. 启动单个微服务,通过fegin缓存访问,

2. 启动单个微服务,在通过controller访问上面的对应的service

3.


二、你期待的结果是什么?实际看到的又是什么?

期待的结果是可以得到TenantId:bladex:XXX:XXX,实际上看到的现象是通过fegin访问的会自动的加上TenantId前缀,例如

图片.png

redis缓存里的

图片.png


而在通过单个微服务直接通过controller访问,在controller上添加

@Cacheable(cacheNames = {BIZ_MERCHANT_MENU_CACHE},key = "#merchantMenu.id")

此种方式的访问则不会添加到对应的TenantId的redis目录下,


而我看2.5.0中

图片.png

图片.png

看到了两种写法

测试后发现,通过上的cache类的访问都会加上租户ID,controller访问同样的service时则又创建了不带租户id的缓存,看过官方的升级文档,也不是很清楚,因为需要在代码基础上扩展缓存,能否详细的说明下2.5.0在不同的地方访问创建和销毁的redis缓存(比如通过fegin,controller。和service访问同一个请求)

三、你正在使用的是什么产品,什么版本?在什么操作系统上?

商业版2.5.0 linux

四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。

2条回答
  •  Mr.
    Mr. (楼主)
    2020-05-27 09:16

    我知道这个是销毁缓存的时候的做法,

    @Cacheable(cacheNames = {BIZ_MERCHANT_MENU_CACHE},key = "#merchantMenu.id")

    原来在查询单个数据详情时,

    图片.png

    这个方式怎么做的缓存,我看2.5.0,这个注解已经没有使用了,呢我怎么做呢?

    我问题的重点是缓存的存储,原来的详情上面加了

    @Cacheable

    注解,可以存储缓存,您说的呢个是怎么销毁缓存;

    我需要知道的是使用该方式的问题是不会添加到对应的TenantId的redis目录下,如果不用@Cacheable,我又以什么方式,查询详情时,把它放进缓存呢

提交回复