surging 微服務引擎 1.0 正式釋出

fanly11發表於2019-01-01

surging 是一個分散式微服務引擎,提供高效能RPC遠端服務呼叫,服務引擎支援http、TCP、WS、Mqtt協議,採用Zookeeper、Consul作為surging服務的註冊中心,整合了雜湊一致性,隨機,輪詢、壓力最小優先作為負載均衡的演算法,底層協議整合採用的元件是dotnetty、websocket-sharpKestrel。支援通過docker hub 部署服務引擎,也可以通過nuget 引用元件的方式自定義服務引擎。

surging 已完成了生成環境的穩定部署,支援超過千臺機器服務的水平擴充套件,可以支援超過1000個的serviceroutes部署,可以支援單臺30000個物聯網裝置,平均單次訪問效能可以達到0.11ms(機器的不同,所驗證的結果不同,升級.netcore 2.2 使用分層編譯效能會更高)

以上資料是通過本人測試,還有一些是通過別人的提供的資料獲得。基本上資料都是來自於8核16G的伺服器,下面我們來看看如何從各個渠道去構建surging 服務引擎

 

構建服務引擎

 

一、通過開源原始碼進行構建

 

有部分人員通過引用原始碼進行開發,可能是這樣更容易除錯,或者是實時同步surging, surging 是MIT協議,可以隨便搗鼓,開源地址如下:

https://github.com/dotnetcore/surging

二、通過docker hub 進行構建部署

首先如果是自定義服務引擎,可以把映象引擎上傳到docker hub 映象庫,然後可以根據映象庫做服務編排,以下是所有上傳的surging 映象

也可以通過以下方式獲取官方的服務引擎

通過以下命令進行構建

docker pull serviceengine/surging:v1.0

通過以下命令進行執行

#docker run --name surgingserver_v1.0 --env Mapping_ip=192.168.249.162 --env Mapping_Port=198 --env RootPath=/home/fanly --env
Register_Conn=192.168.249.162:8500 --env EventBusConnection=172.17.0.4 --env Surging_Server_IP=0.0.0.0 -v /home/fanly:/home/fanly -it -p 198:198 serviceengine/surging:v1.0
如下圖所示

三、通過nuget 進行構建部署

 

可以通過nuget 包安裝相關元件,如下圖

 

 

四、通過rancher 進行管理和服務編排

如下圖所示

未來展望

對於surging迄今為止所取得的進展感到非常興奮,有部分已經使用surging用在了生產環境,並且對於surging的效能非常滿意,對於surging未來的規劃是維護現有的元件,並且擴充套件其它常用的協議,比如RTP、RTSP、RTMP ,還有就是做管理中心,包括了釋出管理,配置管理,監控中心,異常通知,元件應用中心等功能,這裡也感謝大家對於surging 的貢獻與支援,也期待大家共同一起完善surging ,一起支援.net core 的生態。

 

相關文章