bladex2.5.0关于缓存的问题

Blade 未结 2 1825
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条回答
提交回复