1. 程式人生 > >.NET 微服務

.NET 微服務

前文傳送門: - [什麼是雲原生?](https://www.cnblogs.com/JulianHuang/p/14375725.html) - [現代雲原生設計理念](https://www.cnblogs.com/JulianHuang/p/14377177.html) ### Microservices 微服務是構建現代應用程式的一種流行的體系結構樣式,雲原生系統擁抱微服務。 微服務是由一組(使用共享結構互動的、獨立的小塊服務)搭建的分散式集,具有以下特徵: - 在大型的領域上下文中,每個微服務實現特定的業務功能 - 每個微服務都自主開發的,且可以獨立部署 - 每個微服務都獨立封裝了自己的資料儲存技術(SQL,NoSQL)和程式設計平臺。 - 每一個微服務都執行在獨立程序,並使用標準的通訊協議(例如HTTP/HTTPS、WebSocket或AMQP)與其他程序進行通訊。 - 它們一起組成一個應用程式。 下圖對比單體與微服務應用: > 請注意,單體應用由分層架構組成,在單個程序中執行,通常使用關係型資料庫。 但是,微服務方法將功能分為包含邏輯和資料的獨立服務,每個微服務都託管自己的資料儲存。 ![](https://docs.microsoft.com/en-us/dotnet/architecture/cloud-native/media/monolithic-vs-microservices.png) 微服務依然遵守"十二要素應用"中的One Codebase, One Application”原則。 > 每個微服務儲存在獨立程式碼倉庫,通過版本管理進行跟蹤,可以部署到多個環境。 ### 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 -