我应该在低负载的应用程序中使用微服务吗?

时间:2018-08-10 12:19:28

标签: web-services docker microservices

我的情况如下:

我们有一个复杂的应用程序,我想将其分为多个可以并行工作的开发团队。微服务概念可以很好地处理它,但是由于该应用程序负载不高,因此托管许多不同的微服务实在是太过分了。因此,出现了一个问题:我应该使用微服务,还是会导致基础架构的额外成本?

我可以在同一台计算机上以单独的进程运行微服务,还是每个进程都需要Docker?

每个微服务器都提供Web服务/ REST,它们是否可以绑定到一个IIS或Docker是唯一的选择?他们将如何解决主应用程序?我需要API网关吗?

如果不是微服务,我还能用什么来避免大型的整体应用程序?

BTW,与微服务一起-它们如何在一个数据库中共享相同的数据?

2 个答案:

答案 0 :(得分:0)

这是很多基本问题,在继续进行项目之前,肯定需要好的答案。我建议阅读Sam Newman的“ Building microservices"

答案 1 :(得分:0)

通常,采用微服务有3个主要优点:

  1. 可扩展性,这不是您的兴趣。
  2. 可维护性,其中每个微服务都有一个明确的用例,这会导致少量的代码,从而使可维护性更加容易。
  3. 容错,如果某些微服务失败,则其他微服务仍会运行。

如果您只关心复杂性,那么通过将您的整体划分为不同的域(可以分配给不同的团队),域驱动设计确实可以为您提供帮助。关于架构,您可以采用常规的SOA架构。如果您拥有定义良好的域,那么SOA或微服务只是一个部署体系结构。

他们如何在一个数据库中共享相同的数据? 那是一个非常抽象的问题,因此答案将有点抽象。通常,它们不在同一数据库中共享数据,在大多数情况下,每个微服务都将拥有自己的数据库,在某些情况下,一组微服务可以共享一个数据库。