.NET 微服务
前文传送门:
Microservices
微服务是构建现代应用程序的一种流行的架构风格。(云原生拥抱微服务)
微服务是由一组(使用共享结构交互的、独立的小块服务)搭建的分布式集
共享结构??微服务之间不是通过标准http,grpc来调用吗?怎么还共享结构?
指的是所有微服务共享 基础设施(集群cpu内存资源),网络拓扑,支撑性服务(日志采集,性能分析,链路追踪,服务治理)
微服务应用都具有以下特征:
- 在一个较大的领域上下文中,每个微服务实现特定的业务功能
- 每个微服务都自主开发(啥叫自主开发?就是不依赖其他微服务,可以自行迭代开发)且可以被独立部署
- 每个微服务都独立携带了自己的数据存储(SQL,NoSQL)和编程平台。
- 每一个微服务都运行在独立进程,并使用标准的通信协议(例如HTTP/HTTPS、WebSocket或AMQP)与其他进程进行通信。
- 它们一起组成一个应用程序。
下图对比单体与微服务应用:
请注意,单体应用由分层架构组成,在单个进程中执行,通常使用关系型数据库。
但是,微服务将业务划分为( 逻辑+数据) 的独立服务,每个微服务都托管自己的数据存储。
微服务依然遵守"十二要素应用"中的One Codebase, One Application”原则。
每个微服务存储在独立代码仓库,通过版本管理进行跟踪,可以部署到多个环境。
因为我们强调的是每个微服务可以被敏捷部署,而敏捷部署衍生的cicd一般作用在仓库级别。
Why microservices?
微服务提供了敏捷性。
上一段落,我们已经对比了单体和微服务,我们看到了一些明显的好处:
-
每个微服务都有自治的生命周期,可以独立演进、多频次部署。
你不必等待发布窗口即可部署新功能或更新,你可以只更新复杂应用的一小部分区域,减少破坏整个系统的风险。 -
每个微服务都可以独立伸缩。
不需要以应用整体为单位伸缩,而仅伸缩那些需要更多处理能力或网络带宽的微服务,这种细粒度的伸缩方法提供了更好的控制力和成本优势。
学习微服务的最佳指南是《.NET Microservices: Architecture for Containerized .NET Applications》,这本书深入探讨了微服务设计和架构,它是微服务实践https://github.com/dotnet-architecture/eShopOnContainers的阅读搭档。
Developing microservices
可以使用任何现代开发平台来创建微服务。
微软.NET平台是一个绝佳的选择,免费、开源,内置许多功能以简化微服务开发。 .NET是跨平台的,可以在Windows、macOS和大多数Linux上构建和运行应用程序。
.NET的性能很高,在TechEmpower组织的性能基准测试中,.NET相当优秀。
.NET由Microsoft和.NET社区在GitHub上维护。
Ref
- https://docs.microsoft.com/en-us/dotnet/architecture/cloud-native/definition
- 👉后台回复 cloud-native,获取微软出品《Architecting Cloud Native .NET Apps》PDF
- 👉后台回复 microservices,获取微软出品《.NET Microservices: Architecture for Containerized .NET Applications》PDF
本文来自博客园,作者:{有态度的马甲},转载请注明原文链接:https://www.cnblogs.com/JulianHuang/p/14381642.html
欢迎关注我的原创技术、职场公众号, 加好友谈天说地,一起进化![](https://blog-static.cnblogs.com/files/JulianHuang/QR.gif)