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文章
8934浏览量
85049 -
开源
+关注
关注
3文章
3212浏览量
42293 -
Docker
+关注
关注
0文章
452浏览量
11791 -
Rust
+关注
关注
1文章
228浏览量
6541
原文标题:【Rust日报】2023-08-20 Rivet – 使用 Rust 和 Nomad 进行开源游戏服务器管理
文章出处:【微信号:Rust语言中文社区,微信公众号:Rust语言中文社区】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论