Rivet – 使用 Rust 和 Nomad 進行開源游戲服務器管理
我已經在一個名為Rivet 的項目上工作了幾年,最近才開源。
我們在構建 Rivet 時嘗試了很多有趣的工具,但其中大部分都沒有保留下來。我想我會分享一些你們可能會感興趣的筆記:
Bolt是我們用于開發和管理超級可定制鉚釘簇的工具鏈。這是超級過度設計的,但我喜歡它。
您可以將整個存儲庫用作庫。我們的 EE 存儲庫僅使用 OSS 存儲庫作為子模塊,并將服務作為庫導入。
我們利用 Traefik 作為邊緣代理來快速處理 UDP、TCP+TLS 和 WSS 流量。
Apache Traffic Server 因其大文件緩存能力而被低估。它用于邊緣 Docker 拉通緩存,以減少冷啟動時間并將其用作 CDN 緩存,從而降低我們的 S3 成本。
ClickHouse 處理分析和游戲服務器日志。事情就這么簡單;沒有進一步的評論。
使用 Apache TS 提供 Docker 映像比運行 Docker 拉通緩存更容易、更經濟。
事實證明,星云作為我們的覆蓋網絡是可靠且易于管理的。
對于復雜的、原子的、內存中的操作,我們使用 Redis Lua 腳本。
顯然,我們是尼克斯的粉絲。
我們維護一個基本的SBOM。
我們的許可是在 Apache 2.0(OSI 批準)下進行的,我們鼓勵其他人運行和試驗 Rivet。我們經常回答與此相關的問題:許可為什么選擇 OSS
ws-tool 0.9.0 發布
ws-tool是一個高性能的websocket庫,提供同步和異步IO接口。
這是0.9.0版本的更新
更多性能提升,每秒讀寫消息數在EchoServer示例中最高,基準數據見下文
支持本機 TLS
一些 API 改進
一些錯誤修復
benchmark
300 bytes payload size, 100000000 messages
cargo lt -- -p 300 --count 100000 -t 1
server | count | Duration(ms) | Message/sec |
---|---|---|---|
uWebSocket | 100000000 | 16798 | 5953089.65 |
tungstenite | 100000000 | 19905 | 5023863.35 |
bench_server(無緩沖區) | 100000000 | 42395 | 2358768.72 |
bench_server(8k) | 100000000 | 16541 | 6045583.70 |
bench_async_server(無緩沖區) | 100000000 | 45774 | 2184646.31 |
bench_async_server(8k) | 100000000 | 16360 | 6112469.44 |
1M bytes payload size, 100000 messages
cargo lt -- -p 1048576 --count 100 -t 1
server | count | Duration(ms) | Message/sec |
---|---|---|---|
WebSocket | 100000 | 34900 | 2865.33 |
tungstenite | 100000 | 38745 | 2580.98 |
bench_server(無緩沖區) | 100000 | 29854 | 3349.63 |
bench_server(8k) | 100000 | 28887 | 3461.76 |
bench_async_server(無緩沖區) | 100000 | 29280 | 3415.30 |
bench_async_server(8k) | 100000 | 29384 | 3403.21 |
適用于 Rust 0.13 的 XRPL Ledger SDK 發布
適用于 Rust 的 XRPL SDK 是一個社區驅動的項目,提供用于連接 XRP Ledger 的易于使用的工具。它包括 HTTP 和 WebSocket 客戶端、基礎包和命令行工具。
-
服務器
+關注
關注
12文章
9029瀏覽量
85207 -
開源
+關注
關注
3文章
3256瀏覽量
42420 -
Docker
+關注
關注
0文章
455瀏覽量
11819 -
Rust
+關注
關注
1文章
228瀏覽量
6574
原文標題:【Rust日報】2023-08-20 Rivet – 使用 Rust 和 Nomad 進行開源游戲服務器管理
文章出處:【微信號:Rust語言中文社區,微信公眾號:Rust語言中文社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論