[java 微服务 后台管理系统 ] 具体业务 与 用户系统 分离, 如何处理 createUser updateUser deleteUser等这些字段信息?

概述

早期业务表可以通过表关联查询获取到 user 的信息。
现在 用户系统 完全分离出去了。

目前的方案

spring-cloud

A. 所有的 createUser updateUser deleteUser 的字段类型 改为 FeignUser,
我查 10条数据 : 需要 执行 10 * 3 次查询 (findUser), 不需要多写代码。

B. 所有的 createUser updateUser deleteUser 的字段类型 改为 FeignUser,
我查 10条数据: 通过拦截, 需要执行 3 次查询 (selectUser), 但需要手动写代码分配。

问题

  1. 请问是否存在 智能的解决方案, 使得 结果, 兼具 A(不需要多写代码) B(查询次数少) 的优点。


回答:

用户服务提供批量查询接口,允许接收多个用户id。业务系统调用接口一次性传多个用户id,来拿到这些用户的信息


回答:

这种问题,大概三种解决方案。具体采用哪种,看业务场景。

  1. 本地数据冗余

本地除了存储userId,再额外存储username。

  1. 缓存(堆内、堆外)

cache aside方案,查询用户时优先查询本地,本地没有则调用接口查询并添加至缓存。

  1. 栈内缓存

缓存当前已查询的数据,避免重复查询。


所谓智能方案,无非是考虑各种场景去适配出来的方案。类似的,不只是查询,还有修改、删除,是否可以添加拦截器自动去session获取用户信息,并自动填充呢?


本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。


回答:

我们这像表字段冗余,接口支持批量查询都是有的,一般明确这种数据会极少变更的,还是冗余进去了

以上是 [java 微服务 后台管理系统 ] 具体业务 与 用户系统 分离, 如何处理 createUser updateUser deleteUser等这些字段信息? 的全部内容, 来源链接: utcz.com/p/945050.html

回到顶部