采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
我还是不太理解这个多租户,读取数据没啥问题,写入数据是每个数据库都写入吗?如果有一个失败了那数据库之间的数据不就不一致了吗?事务怎么加?
你这个问题要分几个点来回答:
多租户是什么?简单来说,不同租户可能拥有不同的数据隔离级别
读取数据没啥问题,写入数据是每个数据库都写入吗?不一定,取决于你采用的多租户模型。比如,是多个租户一个数据库,一般是秀tenant_id来区分;多个租户,不同的数据库,不同租户的数据写入到不同的数据库,读取当然也是分别读取。所以:
每个租户只写自己的数据库,不会给所有租户写同样的数据
如果有一个失败了那数据库之间的数据不就不一致了吗?事务怎么加?
是的,如果你在多个数据库写入时没有使用分布式事务,一部分成功、一部分失败,确实会导致不一致。
一般在分布式的场景下,传统数据库无法覆盖这种业务场景。可以考虑:分布式事务、异步补偿、数据复制(一写多同步)等策略。
在nestjs中,可以考虑使用seata来做!
而异步补偿,很多缓存工具或者队列都可以做,每个步骤执行成功后写入事件表(存入之前的缓存),如果后续失败,系统触发“补偿逻辑”将前面操作回滚。
明白了,多租户每个数据库本来就是存不一样的数据
登录后可查看更多问答,登录/注册
NestJS 从拔高到精通,大型复杂业务架构落地实践
185 4
151 3
329 3
442 3
282 3
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号