本文转载自微信公众号《全栈码农画像》,作者小马甲。转载本文请联系全栈码农画像公众号。微服务微服务是构建现代应用程序的流行架构,云原生系统拥抱微服务。微服务是一组分布式(交互的、使用共享结构的独立小块服务),具有以下特点:独立封装了自己的数据存储技术(SQL、NoSQL)和编程平台。每个微服务都运行在一个独立的进程中,并使用标准通信协议(例如HTTP/HTTPS、WebSocket或AMQP)与其他进程通信。它们一起构成一个应用程序下图比较了单体应用程序和微服务应用程序:请注意,单体应用程序由分层架构组成,在单个进程中执行,并且通常使用关系数据库。然而,微服务方法将功能划分为(逻辑+数据)独立的服务,每个服务都有自己的数据存储。微服务在“十二要素应用”中依然遵循“一个代码库,一个应用”的原则。每个微服务都存储在一个独立的代码仓库中,通过版本管理进行跟踪,可以部署到多个环境中。为什么微服务?微服务提供在上一段中,我们比较了单体应用和微服务,我们看到了一些明显的好处:每个微服务都有一个自治的生命周期,可以独立演化并经常部署。您不必等待发布窗口部署新功能或更新,您可以只更新复杂应用程序的一小部分,降低破坏整个系统的风险。每个微服务都可以独立扩展。无需将应用程序作为一个整体进行扩展,仅需要对处理能力或网络带宽需要更多微服务的应用程序进行扩展,这种细粒度的扩展方法提供了更好的控制和成本优势。学习微服务的最佳指南是,本书深入探讨了微服务设计和架构,是微服务实践的阅读伴侣https://github.com/dotnet-architecture/eShopOnContainers。开发微服务可以使用任何现代开发平台来创建微服务。Microsoft.NET平台是一个极好的选择,免费、开源,内置许多功能以简化微服务开发。.NET是跨平台的,可以在Windows、macOS和大多数Linux上构建和运行应用程序。.NET的性能非常高。在TechEmpower组织的性能基准测试中,.NET表现相当不错。.NET由Microsoft和.NET社区在GitHub上维护。参考https://docs.microsoft.com/en-us/dotnet/architecture/cloud-native/definition
