微服务的正确粒度是多少?

时间:2019-07-30 07:38:14

标签: laravel microservices lumen

我们有一个网站,该网站通过API调用来比较航班票价和预订机票,这些航空公司向聚合商提供航班库存和票价。门票的付款通过我们网站上的付款网关的API调用进行。我们具有类似的酒店预订能力。酒店预订和航班预订使用流明作为单独的服务实施。由于酒店预订还使用与航班相同的付款方式,因此我们最终在“酒店服务”下复制了该代码。将付款转换为单独的微服务可能是一个更好的主意。问题是,微服务的正确粒度是什么?

2 个答案:

答案 0 :(得分:0)

如果您在这里担心代码重复,我是否建议编写一个通过composer拉入的软件包?这样,您就可以将其引入将来可能需要的任何其他项目中。至于什么是正确的粒度,一根字符串要多长时间?

答案 1 :(得分:0)

答案是,这取决于。回答问题的一种方法是查看团队的组织方式。您是否有围绕航班集合,付款,酒店预订和航班预订组织的团队?如果有的话,那么也许有必要在您的微服务架构中模仿这种组织结构。毕竟,康威(Conway)的法律规定,这最终将成为您以任何方式组织服务的方式。

话虽如此,我知道的另外两种方式是:

  1. 按业务功能分解Decompose by business capability Context

  2. 按业务子域分解。 Decompose by subdomain Context

相关问题