使用Rust和Nomad进行开源游戏服务器管理

电子说

1.2w人已加入

描述

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 客户端、基础包和命令行工具。

  审核编辑:汤梓红
 
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分