.NET Core微服務開發選項

微服務開發的關注點有哪些?

微服務構最終的目標是實現業務的價值,交付,爲了讓開發人員更加關注業務開發和交付,微服務需要一些比較底層的基礎設置,我們也稱爲微服務公共關注點。

  • 配置管理:對微服務可變參數進行配置管理。比如各種開關、數據庫連接等。

  • 服務發現和LB:服務分佈在不同節點上,服務之間需要互相調用,首先需要定位找到對方,這就是服務發現。一般一個服務會多實例部署,調用方需要以某種負載均衡策略訪問目標服務實例這就是LB。

  • 彈性和容錯:分佈式服務是以網絡相互連接,網絡可能會出現故障,比如斷線,宕機,超時,微服務必須具備容錯的能力來保證服務的質量和用戶體驗。

  • API管理:主要指微服務系統對外暴露的api,一般通過api網關管理,網關是微服務大門,需要支持反向路由、安全鑑權、日誌監控、限流容錯等基本功能,高級網關還需要支持AB測試、藍綠和灰度測試等高級功能。

  • 服務安全:用戶訪問微服務首先需要認證,如果操作某些敏感服務還需要鑑權,服務之間調用也需要一定的權限管控。

  • 日誌監控:服務訪問日誌需要進行集中採集、存儲和分析,方便進一步的分析微服務性能甚至是用戶的行爲。

  • Metrics監控:通過埋點對微服務進行性能、延遲、調用量、錯誤數等等進行監控;也可以對重要的業務指標進行監控。

  • 調用鏈監控:分佈式系統服務之間相互依賴錯綜複雜,通過調用鏈監控可以事實掌握服務之間的依賴關係和之間調用的性能,出現問題,通過分析調用鏈分析,進一步進行排障。

  • 調度和發佈:最終微服務需要發佈到生產環境當中去,目前推薦的微服務交付手段主要是容器雲環境,容器雲 需要支持資源自動調度和發佈,高級的需要滾動發佈和藍綠髮布。

  • 自愈和自動伸縮

.NET Core 微服務開發有哪些選擇?

  • 如果在3年前,你羨慕別人有Spring cloud 全家桶 ,可以很方便的開發微服務,那是真羨慕。不過隨着K8S的出現,你真的不用羨慕了,你可以使用.NET core+K8S 的組合方式作爲開發微服務的選擇。

  • 也可以選擇Steeltoe,它是Pivotal公司開源給.NET基金會的項目。官網地址:https://steeltoe.io/

  • 完全使用.NET開源社區項目來開發微服務。比如Ocelot等..

下面主要列舉下采用.NET開源社區和k8s作爲微服務進行開發

最終採用哪種開發技術,需要根據自己公司的團隊和業務進行考慮,k8s很強大的,需要掌握和學習的技術。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章