项目是用 springboot+dubbo 集成的微服务,现在 api 模块调用数据是消费 service 模块的 dubbo 服务读取数据,现在想在 api 模块加常用数据缓存和分布式锁,还适合在 service 模块添加吗,通过 service 暴露 rpc 接口的方式 api 模块调用还合适吗?
1
Jacky23333 2021-01-30 13:34:06 +08:00 via Android 2
虽然我看不懂你的中文,但是 Redis 应该下沉到 Manager 层吧
|
2
inktiger OP @Jacky23333 我现在其实纠结的问题是在 api 模块直连 redis 还是放在其他模块如 service 模块暴露 rpc 接口的方式
|
3
ChoateYao 2021-01-30 13:52:21 +08:00 1
redis 是基础服务,任何模块都能用,取决于你的数据缓存范围。
如果只是当前接口需要缓存,那么放在 controller 。 如果是全局数据缓存:Token 之类的,那么可以放在 Services 。 以此类推 |
4
meteor957 2021-01-30 14:44:24 +08:00 via Android
service
|
5
Sendya 2021-01-30 14:53:54 +08:00
一般放 service 层
|
6
Rache1 2021-01-30 20:22:13 +08:00
应该放到 repository 吧 ,没有 repository 就下沉到 service 咯
|
7
JDog 2021-01-30 21:42:14 +08:00
放 reousrces 里(逃
|
8
hulala1021 2021-01-30 23:02:02 +08:00
我这边一直放在 controller 层。
一般会定义一个自定义注解,如果部分接口需要缓存的化,在对应 controller 层方法上加个注解; 不过你这个使用场景和我有点不同 |
9
hauzerlee 2021-01-31 17:08:57 +08:00
看你要缓存的数据,更贴近哪一层。如果更贴近原始数据,是为了降低查库的频率,就放到 service 里,如果缓存的数据更接近中间加工完接口往外吐的数据,那就放到 controller 里,拿出来组完数据就可以吐出去了。
|
10
gsh456 2021-02-06 16:06:06 +08:00
这个是看个人习惯,我的习惯是 controller 不做任何业务处理, 所以这个一般我会放到 service
|