關於.NET微服務最熱門的問題解答

MicrosoftReactor發表於2021-05-26

在我們最近讓我們一起學習.NET的微服務專場活動中,我們收到了一些很好的問題。我們在現場已經回答很多問題,但我們想繼續回答一些在會議中出現的最熱門的問題。如果你錯過了現場直播,不要擔心,因為你可以按需觀看。

觀看視訊

當我們擴充套件這些服務時,我們如何擴充套件與這些服務相關的資料庫?

有一些定義良好的模式和最佳實踐可以提高效能和擴充套件資料庫。想要了解如何將資料劃分為分割槽,以提高可伸縮性、減少和優化效能, 請參閱水平、垂直和功能性資料分割槽。想要深入研究微服務的伸縮性,分散式資料,為什麼每個微服務都有資料庫,在關聯式資料庫和NoSQL資料庫之間進行選擇,請參考我們關於為Azure構建雲原生.net應用程式的指導或下載免費的電子書

我們是否需要為每個微服務使用一個新的資料庫,或者微服務可以共享相同的資料庫例項?

團隊使用微服務的自主性是構建雲原生應用的一個重要好處。為了能夠使團隊能夠靈活地在生產中推出更新、安全補丁和bug修復,而不會破壞其他微服務, 最好使用獨立的資料庫例項。原生雲應用架構的靈感來自於著名的12要素應用程式方法論。其中一個因素“支援服務”指出,資料儲存、快取、訊息代理等輔助資源應該通過一個可定址URL公開。雲提供商提供了各種各樣豐富的託管支援服務。我們建議檢查雲中可用的資料庫選項,而不是自己擁有和維護資料庫。

單個Web API能與微服務通訊嗎?

是的。如果微服務的端點在基礎設施中是可到達的,或者使用公共端點安全地訪問,那麼單片應用程式可以與微服務進行通訊。微服務及其資料可以通過其端點進行同步消費,或也可以通過訊息傳遞(如事件匯流排)進行非同步消費。作為現代化技術的一部分,我們推薦有助於漸進地遷移舊系統的扼殺模式。作為解決方案的一部分,您需要建立一個阻止請求的façade。façade將這些請求路由到舊應用程式或新服務。想要了解更多關於微服務通訊和現代化技術的資訊,請參閱.net體系結構指南

如果微服務是鬆散耦合和獨立部署的,它們如何相互通訊?如何在微服務之間同步資料?

這是個很好的問題。在《為Azure構建雲原生.net應用程式》一書的兩個章節中詳細解釋了這個問題。這些連結會對你有所幫助:

微服務需要使用容器嗎?

沒有必要的。然而,使用容器也有它的好處。微服務,通常稱為微服務體系結構,是設計指導和最佳實踐。它幫助您將應用程式分解為由特定業務邊界定義的多個較小的服務,這些服務由較小的團隊獨立管理。容器將應用程式及其配置和依賴項組合成一個單獨的、獨立的可部署單元。容器非常適合繫結和部署獨立的微服務。您可以通過編寫第一個微服務端點並將其容器化來了解其好處。

更多的microservices資源

您是否正在尋找更多用於.net開發的微服務和本地雲資源?請持續關注微軟的blog和官方文件。有任何問題,歡迎來Microsoft Q&A 論壇提問:
https://docs.microsoft.com/en-us/answers/products/dotnet.

相關文章