我的情况如下:
我们有一个复杂的应用程序,我想将其分为多个可以并行工作的开发团队。微服务概念可以很好地处理它,但是由于该应用程序负载不高,因此托管许多不同的微服务实在是太过分了。因此,出现了一个问题:我应该使用微服务,还是会导致基础架构的额外成本?
我可以在同一台计算机上以单独的进程运行微服务,还是每个进程都需要Docker?
每个微服务器都提供Web服务/ REST,它们是否可以绑定到一个IIS或Docker是唯一的选择?他们将如何解决主应用程序?我需要API网关吗?
如果不是微服务,我还能用什么来避免大型的整体应用程序?
BTW,与微服务一起-它们如何在一个数据库中共享相同的数据?
答案 0 :(得分:0)
这是很多基本问题,在继续进行项目之前,肯定需要好的答案。我建议阅读Sam Newman的“ Building microservices"。
答案 1 :(得分:0)
通常,采用微服务有3个主要优点:
如果您只关心复杂性,那么通过将您的整体划分为不同的域(可以分配给不同的团队),域驱动设计确实可以为您提供帮助。关于架构,您可以采用常规的SOA架构。如果您拥有定义良好的域,那么SOA或微服务只是一个部署体系结构。
他们如何在一个数据库中共享相同的数据? 那是一个非常抽象的问题,因此答案将有点抽象。通常,它们不在同一数据库中共享数据,在大多数情况下,每个微服务都将拥有自己的数据库,在某些情况下,一组微服务可以共享一个数据库。