我对微服务社区有疑问.我将从教育领域给出一个例子,但它适用于每个微服务架构.
假设我有学生服务和许可服务,其业务要求是学生数量受许可限制.因此,每次创建学生时都必须进行许可检查.有多种类型的许可证,因此许可证的类型必须包含在操作中.
我的问题是你发现哪种方法在实践中更好:
人们谈论微服务体系结构更像是图形而不是层次结构,选项1有点将其转换为层次结构,在这种层次结构中,复合材料越来越粗糙.其他缺点是它会对服务客户端应该实际使用的内容产生混淆,并且会出现一些重复,因为复合API必须包含调用下游服务所需的所有参数.它确实有很大的好处,因为它为您提供了一个自然的地方来进行故障处理,编排和处理一致性.
选项2似乎也有缺点:
许可API必须泄漏到学生API中,以便您可以指定许可限制.
它给学生服务带来了很大的负担,因为它必须处理所有依赖服务的一致性
选项3虽然天堂脱钩,但我认为这不会起作用,因为这一切都是从用户界面触发的,而且人们并不习惯"在这个新学生出现之前先去做其他事情"的方法.
谢谢