本文所有打賞將全數捐贈於 NCC(NCC 的資金目前由 傾竹大人 負責管理),請注明捐贈於 NCC。捐贈情況將由傾竹大人在此處公示。
提及 .NET 微服務,我們腦海中浮現的一系列印象中,總有 Surging 的蹤跡。毫無疑問,盡管我們尚未將之納入生產環境的技術選型范圍,但這個項目我們已經觀察了很久,私底下也拿來學習和嘗試。對我來說,讓我最感動的瞬間是作者那句「給我 2 年時間,我給你一個完整的微服務框架」,如果給他 2 年時間,如果我們繼續觀察 2 年,2 年后的 Surging 會給我們什么驚喜么?答案欲言未言,就在身邊,今天這篇文章目的不在於介紹范亮先生及其 Surging,而在於祝賀范亮先生的 Surging 成為 NCC 的第四個千星項目。感謝他的努力,祝賀他的成績。
去年年中,范亮先生為大家帶來了 Surging,詳細介紹了 Surging 的架構思想。Surging 是一個分布式微服務框架,提供高性能 RPC 遠程服務調用,采用 Zookeeper、Consul 為服務注冊中心,集成了哈希、隨機、輪詢、壓力最小優先作為負載均衡的算法,集成 Netty 框架,使用異步傳輸。三言兩語無法道盡 Surging,所幸在范亮先生的博客中有大量文章介紹 Surging 的各子系統細節和用例,本文不做贅述。
Surging 能帶來什么?
- 簡化的服務調用,通過服務規則的指定,就可以做到服務之間的遠程調用,無需其它方式的侵入
- 服務自動注冊與發現,不需要配置服務提供方地址,注冊中心基於ServiceId 或者RoutePath查詢服務提供者的地址和元數據,並且能夠平滑添加或刪除服務提供者。
- 軟負載均衡及容錯機制,通過surging內部負載算法和容錯規則的設定,從而達到內部調用的負載和容錯
- 分布式緩存中間件:通過哈希一致性算法來實現負載,並且有健康檢查能夠平滑的把不健康的服務從列表中刪除
- 事件總線:通過對於事件總線的適配可以實現發布訂閱交互模式
- 容器化持續集成與持續交付 :通過構建一體化Devops平台,實現項目的自動化構建、部署、測試和發布,從而提高生產環境的可靠性、穩定性、彈性和安全性。
- 業務模塊化驅動引擎,通過加載指定業務模塊,能夠更加靈活、高效的部署不同版本的業務功能模塊
項目:https://github.com/dotnetcore/surging
授權:MIT
文檔:https://github.com/dotnetcore/surging/blob/master/docs/README.md
簡單示例:https://github.com/dotnetcore/surging/blob/master/docs/docs.en/INDEX.md
作者:Fanliang11(范亮)
GitHub:https://github.com/fanliang11
在 NCC Meetup 2018 Shanghai 活動中,范亮先生為我們介紹了 Surging。
- 演講 PPT:http://events.dotnet-china.org/shanghai-2018/speech-01-fanliang.pdf
- 演講視頻:https://www.bilibili.com/video/av26680192/
Surging 自加入 NCC 起始終堅持不懈的更新、完善,作者發型優美、思路嚴謹;項目逐漸完整、日趨完善,於 2018 年 6 月底七月初成為 NCC 第四個星數破千的項目,值得祝賀。為此,經 NCC 授權,由 AlexLEWIS 贈送 Surging 作者 Fanliang11 先生圖書一本。
將《思維簡史》贈予范亮先生。
如果您有項目想加入我們,歡迎來 http://github.com/dotnetcore/home 提請:)
本文所有打賞將全數捐贈於 NCC(NCC 的資金目前由 傾竹大人 負責管理),請注明捐贈於 NCC。捐贈情況將由傾竹大人在此處公示。