热点技术问题-大白话之传统项目微服务改造经验

    微服务拆分时,数据库问题

问题说明:微服务拆分后,对应的数据库也会进行拆分。也就是原本很简单功能一个查询就解决,拆分后就得跨多个微服务查询。如果其中一张表数据较少可以代码循环的方式解决,如果每个微服务的数据都比较多就比较麻烦。

方案一:使用视图,通过视图把两个库的中表进行强关联。当然这样也就违避微服务的解耦

方案二:临时表或缓存,通过临时表或缓存构建临时关联数据,使用完就清理

方案三:数据冗余,牺牲空间换时间。类似索引,牺牲索引空间换查询速度。

建议使用方案三,数据同步的问题可以借助MQ来实现

    微服务拆分粒度

微服务粒度问题,多次讨论拆分架构。拆分是一个迭代的过程,别试着一步到位拆成很细,一开始千万别拆太细。一般微服务划分越细,那么模块之前的集成就越复杂。可以把业务与数据库结合起来一起拆分,相互参照。

    各微服务间的开发各扫自家门前雪
经验分享 程序员 微信小程序 职场和发展