.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很強大的,需要掌握和學習的技術。
總結
以上是生活随笔為你收集整理的.NET Core微服务开发选项的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: redis大幅性能提升之使用管道(Pip
- 下一篇: .NET 开源项目 StreamJson