一、前言 surging 開源地址:https://github.com/dotnetcore/surging 隨著業務的發展,併發量的增多,業務的複雜度越來越大,對於系統架構能力要求越來越高,這時候微服務的設計思想應運而生,但是對於微服務需要引擎進行驅動,這時候基於.NET CORE 的微服務引擎 ...
一、前言
surging 開源地址:https://github.com/dotnetcore/surging
隨著業務的發展,併發量的增多,業務的複雜度越來越大,對於系統架構能力要求越來越高,這時候微服務的設計思想應運而生,但是對於微服務需要引擎進行驅動,這時候基於.NET CORE 的微服務引擎surging 就誕生了。
1.那麼怎麼樣去理解微服務呢?
微服務是針對業務的松耦合,是對於業務的解耦,也是粒度最小的功能業務模塊,對於本地和遠程的抽象化,對於遠程調用提供了服務治理保證了可靠性通信。
2. 那麼什麼是微服務引擎呢?
微服務引擎是微服務的容器,是掃描或引用載入業務服務模塊驅動生成服務提供者,針對於行業解決方案,集成相應的service host,而針對於業務需要一些中間件來輔助,比如緩存中間件,eventbus中間件(消息中間件),數據儲存中間件,而各個服務又可 以互相通過rpc進行可靠性通信。
3. 是不是需要有非微服務不可的心態去重構系統?
微服務是針對於業務的松耦合,是針對於調用的抽象,所以相關複雜的系統都可以使用微服務的設計思想去重構,但是團隊對於微服務把握不到位的話,我建議還是使用SOA去設計系統,後面可以使用k8s做服務治理。
4.那麼surging 又能做什麼呢?
- 構建Web應用程式,微服務和api網關
- 微服務可以部署在docker。可以使用k8s、rancher服務編排彈性擴容
- 提供了多協議支持
- 支持負載平衡分流壓力
- 基於.NET Core的跨平臺可以在Windows,macOS和Linux上運行;也可以移植到其他操作系統。
- 簡化的服務調用,通過服務規則的指定,就可以做到服務之間的遠程調用,無需其它方式的侵入
- 服務自動註冊與發現,不需要配置服務提供方地址,註冊中心基於ServiceId 或者RoutePath查詢服務提供者的地址和元數據,並且能夠平滑添加或刪除服務提供者。
- 軟負載均衡及容錯機制,通過surging內部負載演算法和容錯規則的設定,從而達到內部調用的負載和容錯
- 分散式緩存中間件:通過哈希一致性演算法來實現負載,並且有健康檢查能夠平滑的把不健康的服務從列表中刪除
- 事件匯流排:通過對於事件匯流排的適配可以實現發佈訂閱交互模式
- 容器化持續集成與持續交付 :通過構建一體化Devops平臺,實現項目的自動化構建、部署、測試和發佈,從而提高生產環境的可靠性、穩定性、彈性和安全性。
- 業務模塊化驅動引擎,通過載入指定業務模塊,能夠更加靈活、高效的部署不同版本的業務功能模塊
針對於以上描述,我們再來看看surging 2.0 新提供的stage組件,在引擎中又有什麼作用呢?