关于微服务服务的数据库设计

来源:2-3 数据库设计概述

慕粉3890137

2018-01-26

用户模块一般作为独立的服务数据库,比如其它业务模块(订单模块) 我的每笔订单都是跟人绑定的。这里是需要用表join的。类似于这样的业务数据应该有很多,这样的表结构如何划分微服务。

写回答

1回答

格鲁

2018-01-26

微服务改造时要以限定上下文进行拆分,假设订单和用户分属两个不同的限定上下文。根据实际经验,用户通常作为一个最基础的服务,用户涉及的关联关系很多,为防止用户服务变的过于庞大,关联关系往往分拆到其它领域模型中进行维护,比如订单用户关系会放在订单服务中维护。
微服务拆分后,对于订单查询的场景,可以从订单用户关系表中的userid来查询出订单id列表,然后通过订单id列表查询订单表。对于多维度条件、分页、范围查询的场景可以将用户和订单表合并成一个宽表输出到ES中,来解决跨库join的问题

0
0

Java从单体到微服务打造房产销售平台

单体开发,SpringCloud微服务改造,架构原理剖析,让你在大型项目中独当一面!

711 学习 · 349 问题

查看课程