最近部落格園出現了一篇文章《微服務時代之2017年五軍之戰:Net PHP誰先死》,掀起了一波撕逼,作者只是從一個使用者的角度來指點江山,這個姿勢是不對的。.NET Core就是專門針對模組化的微服務架構而設計,在微服務架構這方面Java的Spring Cloud具有非常高的人氣,這個正是這篇文章作者的立腳點。然後他沒有看到蓬勃發展的.NET 社群的微服務的相關框架,本文主要梳理下當前.NET社群微服務的相關專案的彙集。
1、 Service Fabric
微軟作為.NET的主戰場,自然在當前的微服務框架上有著豐富的經驗,這一領域的代表作就是Azure Service Fabric,在Azure上的眾多雲服務都是基於Servie Fabric構建,而且微軟已經明確表態了Service Fabric將開源,Runtime還沒開源,說有計劃開源,但目前因為依賴於很多內部工具、元件,在逐步推進runtime的開源程式,具體可以看下我寫的一篇部落格《期待微軟平臺即服務技術Service Fabric 開源》。如果你是基於Azure平臺來開發,你完全可以使用Service Fabric 做應用開發。當然你如果是在你私有云裡用他,也是完全可以的,具體案例我舉一個就是騰訊遊戲:https://customers.microsoft.com/en-us/story/tencent-telecommunications-azure-service-fabric-windows-server-en
這裡列出1個Github 以Service Fabric 開發微服務的專案:
https://github.com/danielmarbach/Microservices.ServiceFabric
2、Steeltoe OSS
在微服務架構這方面Spring Cloud具有非常高的人氣,如果你在使用Spring Cloud,可以使用開源專案https://github.com/steeltoeoss 開發.NET Core應用,具體可以參考這篇文章Enabling .NET Core Microservices with Steeltoe and Pivotal Cloud Foundry .
3、Microdot Framework
https://github.com/gigya/microdot,這是一個4月份才開源的.NET微服務框架,讓您專注於編寫定義服務邏輯的程式碼,無需解決開發分散式系統的無數挑戰,可以很好的Microsoft Orleans的整合。
4、.NET China Foundation
.NET China Foundation 也組織整合了系列國內社群開源專案,裡面有多個專案都是以微服務為方向,歡迎大家加入一起來把.NET Core的微服務玩好。
https://github.com/dotnetcore/CAP
https://github.com/dotnetcore/surging
https://github.com/dotnetcore/Util
5、其他眾多開源的微服務架構專案
.NET社群裡還有很多微服務的專案,下面我就簡要列出他們在Github上的地址:
1、Xigadee
https://github.com/xigadee/Microservice
2、Apworks framework
https://github.com/daxnet/apworks-core
https://github.com/daxnet/apworks-examples
3、Cronus
https://github.com/Elders/Cronus
4、NancyFx
https://github.com/Cimpress-MCP/Cimpress.Nancy
5、GRPC
https://github.com/pchalamet/GrpcConsul
6、API 閘道器Ocelot
https://github.com/TomPallister/Ocelot ,Ocelot是一個使用.NET Core平臺上的一個API Gateway,這個專案的目標是在.NET上面執行微服務架構,我在年初基於Ocelot做了一個POC專案 https://github.com/geffzhang/NanoFabric ,目前已經上線執行。同時也在不斷的豐富Ocelot的功能。
簡要的列了一下.NET 平臺上的微服務開發的相關類庫,歡迎大家推薦你用過的微服務的相關類庫,在最後推薦一個.NET上歸屬與.NET 基金會下面的開源專案:https://dotnetfoundation.org/projects?type=project 這裡可以找到你想要的專案。