[java 微服务 后台管理系统 ] 具体业务 与 用户系统 分离, 如何处理 createUser updateUser deleteUser等这些字段信息?
概述
早期业务表可以通过表关联查询获取到 user 的信息。
现在 用户系统
完全分离出去了。
目前的方案
spring-cloud
A. 所有的 createUser updateUser deleteUser 的字段类型 改为 FeignUser,
我查 10条数据 : 需要 执行 10 * 3 次查询 (findUser), 不需要多写代码。
B. 所有的 createUser updateUser deleteUser 的字段类型 改为 FeignUser,
我查 10条数据: 通过拦截, 需要执行 3 次查询 (selectUser), 但需要手动写代码分配。
问题
- 请问是否存在 智能的解决方案, 使得 结果, 兼具 A(不需要多写代码) B(查询次数少) 的优点。
回答:
用户服务提供批量查询接口,允许接收多个用户id。业务系统调用接口一次性传多个用户id,来拿到这些用户的信息
回答:
这种问题,大概三种解决方案。具体采用哪种,看业务场景。
- 本地数据冗余
本地除了存储userId,再额外存储username。
- 缓存(堆内、堆外)
cache aside方案,查询用户时优先查询本地,本地没有则调用接口查询并添加至缓存。
- 栈内缓存
缓存当前已查询的数据,避免重复查询。
所谓智能方案,无非是考虑各种场景去适配出来的方案。类似的,不只是查询,还有修改、删除,是否可以添加拦截器自动去session获取用户信息,并自动填充呢?
本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
回答:
我们这像表字段冗余,接口支持批量查询都是有的,一般明确这种数据会极少变更的,还是冗余进去了
以上是 [java 微服务 后台管理系统 ] 具体业务 与 用户系统 分离, 如何处理 createUser updateUser deleteUser等这些字段信息? 的全部内容, 来源链接: utcz.com/p/945050.html