微服务建筑设计

时间:2017-08-19 11:41:09

标签: java spring-boot architecture microservices

我一直在阅读微服务上的教程和代码,主要是在Java中(我知道微服务与语言无关)。

但是,我仍然很困惑如何设计微服务。

例如,在销售应用程序中,至少它具有以下资源:

  • 产品
  • 客户
  • 订单

我应该为每个资源创建一个项目吗?假设:产品服务客户服务订单服务。如果我使用Spring Boot,这些将有相应的端口号运行 - 8080,8081,8082。

域模型类 - 客户,产品,订单如何?我应该创建另一个项目并将其导入三个项目吗?

请赐教。如果可能,请添加更多相关主题。

谢谢。

1 个答案:

答案 0 :(得分:1)

微服务粒度是许多研究的主题。一些实践经验表明,基于域上下文(DDD实践)划分微服务可能是有效的。就像你在你的例子中所做的那样,然而决定服务的粒度取决于许多其他事情。 需要考虑的一些因素可能是:

  • 开发团队的规模/数量。
  • 硬件/资源消耗
  • 服务地点分布
  • 处理请求的服务通信次数
  • 服务可重用性(避免重复性工作)
  • 性能
关于服务粒度原则的谷歌。还有许多其他因素需要考虑。