小编Tav*_*ies的帖子

微服务组合方法

我对微服务社区有疑问.我将从教育领域给出一个例子,但它适用于每个微服务架构.

假设我有学生服务许可服务,其业务要求是学生数量受许可限制.因此,每次创建学生时都必须进行许可检查.有多种类型的许可证,因此许可证的类型必须包含在操作中.

我的问题是你发现哪种方法在实践中更好:

  1. 构建一个调用2个服务的组合服务
  2. 将学生服务与许可服务相结合,以便在调用createStudent时,学生服务会调用许可服务,并且只有在完成后才会创建学生服务
  3. 使用基于事件的体系结构

人们谈论微服务体系结构更像是图形而不是层次结构,选项1有点将其转换为层次结构,在这种层次结构中,复合材料越来越粗糙.其他缺点是它会对服务客户端应该实际使用的内容产生混淆,并且会出现一些重复,因为复合API必须包含调用下游服务所需的所有参数.它确实有很大的好处,因为它为您提供了一个自然的地方来进行故障处理,编排和处理一致性.

选项2似乎也有缺点:

  • 许可API必须泄漏到学生API中,以便您可以指定许可限制.

  • 它给学生服务带来了很大的负担,因为它必须处理所有依赖服务的一致性

  • 随着更多服务需要在创建学生时做出反应,我可以看到依赖图快速失控,除了用于管理学生的逻辑之外,服务还必须处理这种复杂性.

选项3虽然天堂脱钩,但我认为这不会起作用,因为这一切都是从用户界面触发的,而且人们并不习惯"在这个新学生出现之前先去做其他事情"的方法.

谢谢

architecture web-services microservices

6
推荐指数
1
解决办法
2586
查看次数

标签 统计

architecture ×1

microservices ×1

web-services ×1