參考
微軟官方文檔 service fabric
百家號 大話微服務架構之微服務框架微軟ServiceFabric正式開源
一、概述
1.概念
Azure Service Fabric 是一款分布式系統平台,可方便用戶輕松打包、部署和管理可縮放的可靠微服務和容器。 Service Fabric 還解決了開發和管理雲本機應用程序面臨的重大難題。 開發人員和管理員不需解決復雜的基礎結構問題,只需專注於實現苛刻的任務關鍵型工作負荷,即那些可縮放、可靠且易於管理的工作負荷。 Service Fabric 代表了下一代平台,用於生成和管理在容器中運行的企業級單層雲規模應用程序。
2.微服務
微服務是指用小型服務集合來構建服務端應用的方法,每個服務在獨立的進程中運行,服務間通過特定協議(http,AMQP)通信,每個服務能夠獨立開發、部署,擁有自己的領域數據模型和領域邏輯,可以有不同的數據存儲技術甚至是不同的編程語言。
微服務的目的在:解耦。解耦是永恆的主題,依賴注入是為了解耦,應用分層是為了解耦,這些可以看做是縱向解耦,而微服務是把應用橫向解耦,服務間解耦。
下圖是傳統一體式應用開發與微服務開發的對比:
①單一式應用包含域特定的功能,通常按照功能層來划分,例如傳統三層。
②單一式應用可通過復制到多個服務器/虛擬機/容器上進行擴展。
③微服務應用程序將單個功能分隔成單個較小的服務。
④微服務方法可通過獨立部署每個服務而擴展,跨服務器/虛擬機/容器創建這些服務的實例。
service fabric 從三方面來幫助我們使用微服務的方式來構建應用:
①提供系統服務的平台,用於部署、升級、檢測和重啟失敗的服務、發現服務、路由消息、管理狀態和監視運行狀況
②能夠部署在容器中運行或作為進程運行的應用程序。
③有助於以微服務形式生成應用程序的生產編程 API:ASP.NET Core、Reliable Actors 和 Reliable Services。 可以選擇使用任意代碼來生成微服務。 但使用這些 API 不僅可讓作業變得更簡單,也能更深入地與平台集成。 例如,可以獲取運行狀況和診斷信息,或利用內置的高可用性
下圖是service fabric 與spring cloud 的對比:
二、應用場景
1.高可用服務:Service Fabric 服務通過創建多個輔助服務副本提供快速的故障轉移。 節點、進程或單獨的服務因硬件或其他故障而不可用時,其中一個輔助副本會提升為主副本,將對服務的損失降到最低。
2.可縮放服務:可對單獨的服務進行分區,以允許在群集范圍內擴大狀態。 此外,還可以動態創建並刪除單獨的服務。 服務可以快速簡單地從幾個節點上的幾個實例擴大到多個節點上的數千個實例,並再次減少,具體取決於資源需求。 可以使用 Service Fabric 來生成這些服務並管理其整個生命周期。
3.基於回話的交互式應用:在應用程序(例如在線游戲或即時消息)需要低延遲讀取和寫入時,Service Fabric 非常有用。 Service Fabric 使你能夠生成這些交互式的有狀態應用程序,而無需創建一個無狀態應用所需的單獨存儲或緩存。 (這會增加延遲時間並可能產生一致性問題)。
4.數據分析和工作流:Service Fabric 的快速讀取和寫入使必須可靠處理事件或數據流的應用程序成為可能。Service Fabric 還可讓應用程序描述處理管道,其中的結果必須能夠可靠地傳遞到下一個處理階段而不會丟失。這包括交易和財務系統,其中的數據一致性和計算保證至關重要。
三、開發准備
1.Windows下開發環境准備
如果需要在windows上開發並運行service fabric 應用程序,需要安裝Service Fabric 運行時、SDK 和工具
具體安裝步驟可參照 Windows上安裝service fabric
以下是windows 10 下,安裝了vs2017的開發人員的環境准備
①重新運行vs2017安裝軟件,選擇修改,選擇azure開發
②安裝 Microsoft Azure Service Fabric SDK
③啟用 PowerShell 腳本執行
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force -Scope CurrentUser
2.Linux下開發環境准備
參照步驟:在 Linux 上准備開發環境