我一直在寻找 SOA 和微服务架构风格之间的差异
并找到了一个很好的链接https://www.infoq.com/articles/boot-microservices https://www.infoq.com/articles/boot-microservices
It Says: 作为“面向服务的架构”(SOA)的继承者,微服务可以归入“分布式系统”的同一家族,并继承了许多与SOA相同的概念和实践。然而,它们的不同之处在于赋予单个服务的责任范围。在 SOA 中,服务可能负责处理广泛的功能和数据域,而微服务的一般准则是它负责管理单一数据域以及围绕该域的相应功能。
编辑:
我已经浏览了链接微服务架构与SOA的区别 https://stackoverflow.com/questions/25501098/difference-between-microservices-architecture-and-soa,但它解释说,前两个原则是相同的,第三点不同(在 SOA 中,服务共享模式和契约,而不是类),但那是 SOAP 契约,但是 SOA 和 SOA 有什么区别(使用 REST)与微服务(主要使用 REST)
补充一下 Sean 所说的,当 SOA 开始在许多公司中使用时,人们开始将微服务称为 API。领域驱动设计的兴起也导致了该术语的使用量增加。在现在的行业里,两者完全没有区别,人们称其为合适。
当你说当你遵循原则时你最终会得到许多微服务时,你是对的。在我看来,无论是 SOA 还是微服务,对独立服务的抽象应该仅取决于用例、服务将如何部署以及有多少团队将并行处理这些服务。如果服务跨主机部署,网络带宽的成本也会增加(尽管容器和 DC/OS 框架现在正在解决这个问题)。如果它是快速变化的服务,有很多移动部件,那么将大型服务分解为微服务是有意义的。否则,我会避免过早优化,并将功能打包到单个(或几个大的)服务中。