多年以来,我们一直在寻找更好的方法来构建应用系统。我们一直在学习已有的技术,尝试新技术,也目睹过不少新兴技术公司使用不同的方式来构建IT 应用系统,从而提高了客户满意度和开发效率。 Eric Evans 的《领域驱动设计》一书帮助我们理解了用代码呈现真实世界的重要性,并且告诉我们如何更好地进行... 查看全部[ 1.1 什么是微服务 ]
微服务有很多不同的好处,其中很多好处也适用于任何一个分布式系统。但相对于分布式系统或者面向服务的架构而言,微服务要更胜一筹,它会把这些好处推向极致。 1.2.1 技术异构性 在一个由多个服务相互协作的系统中,可以在不同的服务中使用最适合该服务的技术。尝试使用一种适合所有场景的标准化技术,... 查看全部[ 1.2 主要好处 ]
SOA(Service-Oriented Architecture,面向服务的架构)是一种设计方法,其中包含多个服务,而服务之间通过配合最终会提供一系列功能。一个服务通常以独立的形式存在于操作系统进程中。服务之间通过网络调用,而非采用进程内调用的方式进行通信。 人们逐渐认识到SOA 可以用来应... 查看全部[ 1.3 面向服务的架构 ]
当你开始使用微服务时会发现,很多基于微服务的架构主要有两个优势:首先它具有较小的粒度,其次它能够在解决问题的方法上给予你更多的选择。那么其他的分解技术是否也有相应的好处呢? 1.4.1 共享库 基本上所有的语言都支持将整个代码库分解成为多个库,这是一种非常标准的分解技术。这些库可以由第三... 查看全部[ 1.4 其他分解技术 ]
在本章结束之前,我想强调一点:微服务不是免费的午餐,更不是银弹,如果你想要得到一条通用准则,那么微服务是一个错误的选择。你需要面对所有分布式系统需要面对的复杂性。尽管后面用很多的篇幅来讲解如何管理分布式系统,但它仍然是一个很难的问题。如果你过去的经验更多的是关于单块系统,那么为了得到上述那些微服务的... 查看全部[ 1.5 没有银弹 ]
希望到目前为止你已经了解了什么是微服务、微服务与其他组合技术有何不同,以及它能够带来的主要好处又是什么。在后面的章节中,我会详细讨论如何得到这些好处及如何避免一些常见的陷阱。 需要介绍的内容很多,但要从一个合适的点开始。架构师承担了驱动系统演化的职责,而引入微服务之后的一个主要挑战就是,架构师... 查看全部[ 1.6 小结 ]