微服务概念应用全解析
1. 数据复制与客户偏好
在微服务架构中,我们会思考能否通过在预订服务中保存客户偏好数据的从副本,来实现客户偏好数据的复制。当主数据发生变化时,更改会自动传播。这样,预订服务就可以直接使用客户偏好,而无需向外发起调用。这是一个合理的想法,但我们需要谨慎分析。例如,今天我们复制了客户偏好,但在其他场景下,我们可能需要联系客服,查看客户是否被列入预订黑名单。所以,在决定复制哪些数据时必须格外小心,因为这可能会增加系统的复杂性。
2. 微服务的端点数量
很多时候,开发者会对每个微服务的端点数量感到困惑,问题的核心在于是否要将每个微服务限制为一个端点或多个端点。实际上,端点数量并非设计的关键决策点。有些微服务可能只有一个端点,而有些则可能有多个。例如:
- 传感器数据服务 :它负责收集传感器信息,有创建和读取两个逻辑端点。为了处理 CQRS(命令查询职责分离),可能会创建两个独立的物理微服务。
- 通知引擎 :通知会根据事件发出,不同事件的通知过程(如数据准备、人员识别和交付机制)不同,且可能需要在不同时间窗口对这些过程进行不同的扩展,此时可能会将每个通知端点拆分为独立的微服务。
- 忠诚度积分微服务 :它可能包含积分累积、兑换、转移和查询余额等多个服务。这些服务相互关联且使用相同的积分表数据,如果每个服务使用一个端点,会导致许多细粒度的服务访问相同的数据存储或其副本。
综上所述,端点数量不是设计决策,一个微服务可以托管一个或多个端点,更重要的是为微服务设计合适的边界上下文。
超级会员免费看
订阅专栏 解锁全文
169万+

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



