silky微服務簡介


項目介紹

silky框架旨在幫助開發者在.net平台下,通過簡單代碼和配置快速構建一個微服務應用的開發框架。它提供了 RPC通信微服務治理 兩大關鍵能力。這意味着,使用 silky 開發的微服務,將具備相互之間的遠程發現與通信能力, 同時利用 silky 提供的豐富服務治理能力,可以實現諸如服務發現、負載均衡、流量調度等服務治理訴求。同時 silky 是高度可擴展的,用戶幾乎可以在任意功能點去定制自己的實現,以改變框架的默認行為來滿足自己的業務需求。

silky微服務有着如下的優勢:

  • 開箱即用

    • 簡單易用,使用通用主機或是web主機來構建(托管)微服務應用。
    • 易用性高,面向接口代理特性能實現本地透明調用。
    • 功能豐富,基於原生庫或輕量擴展即可實現絕大多數的微服務治理能力。
  • 超大規模微服務集群實踐

    • 高性能的跨進程通信協議,使用DotNetty通信框架實現了基於接口代理的RPC框架,提供高性能的基於代理的遠程調用能力,服務以接口為粒度,為開發者屏蔽遠程調用底層細節。
    • 地址發現、流量治理層面,輕松支持規模化集群實例。
  • 企業級微服務治理能力

    • 通過Polly實現的服務治理,提高服務的容錯能力。
    • 內置多種負載均衡策略,智能感知下游節點健康狀況,顯著減少調用延遲,提高系統吞吐量。
    • 支持多種注冊中心服務,服務實例上下線實時感知。
  • 數據一致性的保證

    • 使用TCC分布式事務保證數據最終一致性。

框架特性

silky

服務引擎+模塊化設計

  • 負責silky主機的初始化過程
  • 負責模塊解析、依賴管理與加載
  • 服務注冊與解析

RPC通信

  • 使用Dotnetty作為底層通信組件,使用TCP作為通信協議, 采用長鏈接方式提高系統吞吐量
  • 基於接口的動態代理
  • 支持JSON、MessagePack、ProtoBuf編解碼方式
  • RPC通信過程中支持緩存攔截,提高通信性能
  • RPC調用監控

服務治理

  • 服務自動注冊和發現,服務實例上下線智能感知
  • RPC調用失敗重試
  • 支持輪詢、隨機路由、哈希一致性等負載均衡路由方式, 智能感知下游節點健康狀況,顯著減少調用延遲,提高系統吞吐量。
  • 支持HTTP限流和RPC調用限流
  • 支持熔斷保護,當發生非友好類異常n次后開啟熔斷保護
  • 支持RPC調用的監視
  • 服務降級,當RPC調用失敗后調用Fabllback指定的方法達到服務容錯的目的
  • 通過配置支持禁止服務被外部訪問

通過.net主機構建

  • 使用web主機構建微服務應用
  • 使用通用主機構建微服務應用
  • 構建具有websocket能力的微服務應用
  • 構建網關應用

安全設計

  • 網關統一進行身份認證與鑒權
  • rpc token用於保護RPC通信,保證外部無法直接訪問rpc服務
  • RPC通信支持ssl加密

多種配置方式

  • 支持Json格式配置文件
  • 支持Yaml格式配置文件
  • 支持Apollo作為配置服務中心
  • 使用環境變量

鏈路跟蹤

  • HTTP請求
  • RPC調用
  • TCC分布式事務
  • 其他(EFCore)...

支持分布式事務

  • RPC通信過程中,通過TCC分布式框架保證數據最終一致性
  • 使用攔截器+TODO日志實現
  • 使用 Redis作為TODO日志存儲倉庫

支持websocket通信

  • 通過websocketsharp.core組件構建websocket服務
  • 透過網關代理與前端進行握手、會話

入門

開源地址

github: https://github.com/liuhll/silky

gitee: https://gitee.com/liuhll2/silky


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM