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 <url>
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 <url>
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 客户端、基础包和命令行工具。
https://github.com/gmosx/xrpl-sdk-rust
From 日报小组 时光
社区学习交流平台订阅:
- Rustcc 论坛:支持 rss
- [微信公众号:Rust 语言中文社区]
1
共 0 条评论, 1 页
评论区
写评论还没有评论