微服务架构下的数据处理策略
1. 数据共享与挑战
在探索将数据分散到不同数据库的过程中,会遇到新的问题。其他微服务仍需要从不同的微服务获取数据。例如,运输微服务可能需要订单信息,它该如何获取这些数据呢?
- 直接调用 :一种选择是让运输微服务直接调用订单微服务来检索所需数据。但这种方式存在挑战,微服务之间相互调用获取数据时,可能导致网络通信频繁,增加延迟,同时也会增加相关数据库的负载。例如,若一个微服务调用另一个微服务,而后者又需调用其他微服务,每个调用都会增加延迟,业务流程失败的可能性也会增加。
|微服务|执行时间(秒)|
| ---- | ---- |
|Reviews 微服务|1.5|
|Part 微服务|2.1|
|Catalog 微服务|2.4|
|总延迟|6|
- 数据同步问题 :延迟并非最大问题,更重要的是如何处理数据分散在多个数据库的情况,如何确保数据同步和一致性。当某个微服务出现故障时,数据一致性会受到怎样的影响,这将在事务一致性部分讨论。
2. 数据复制
另一种选择是复制数据。乍一看这似乎不合理,但实际上并非如此。以在线销售零件的微服务为例,零件微服务管理着自己数据库中的零件数据,是零件相关信息的唯一真实来源。当订单微服务需要部分零件数据时,它并不需要零件的所有细节。
- 零件微服务数据库中的零件信息 :
- Id
- 零件编号
- 名称
- 描述
- 类别
-
微服务架构下的数据处理策略
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



