微服务的识别、范围界定与协作
微服务范围界定的关键因素
在构建微服务架构时,准确界定微服务的范围至关重要。主要有两个关键驱动因素,分别是业务能力和支持性技术能力。
- 业务能力识别 :业务能力是组织为实现业务目标而开展的活动。可以借助领域驱动设计技术来识别业务能力,该技术能帮助我们更深入地理解业务领域,从而精准定位业务能力。
- 支持性技术能力识别 :支持性技术能力是为一个或多个基于业务能力的微服务提供支持的技术功能。不过,只有当这些支持性技术能力足够复杂,在原本所属的微服务中会引发问题,并且能够独立部署时,才应将其迁移到单独的微服务中。识别支持性技术能力属于机会主义设计,只有在整体上能实现简化时,才应将其提取到单独的微服务中。
在界定微服务范围时,若存在疑问,应倾向于将范围稍微扩大而非缩小。由于准确界定微服务范围颇具难度,我们可能时常会感到困惑,首次尝试时也可能会出现范围界定不准确的情况。因此,要做好从现有微服务中拆分出新微服务的准备,并且可以利用对范围的疑虑来组织微服务代码,以便后续能更轻松地拆分出新的微服务。
微服务的协作方式
每个微服务仅实现单一能力,但为了向最终用户提供完整的功能,微服务之间需要进行协作。主要有三种协作方式:命令、查询和事件。
- 命令 :当一个微服务需要另一个微服务执行某个操作时,会使用命令。例如,忠诚度计划微服务需要向注册用户发送通知时,会向通知微服务发送命令。
- 查询
超级会员免费看
订阅专栏 解锁全文
916

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



