扫码阅读
手机扫码阅读

Discord 使用单台服务器服务于 100 万在线 MidJourney 用户

48 2024-07-04

Discord 进行了平台优化,以支持单台服务器超过100万在线用户,并保持高响应性。为了提升性能和可扩展性,对发送亿级消息通知的guild组件进行了增强。

Discord的关键技术包括Elixir语言和Erlang VM,负责消息路由和通知。Guild服务器作为管理社区业务流的核心,与多个会话进程交互,通过WebSocket向用户设备发送消息。此外,API服务使用Python编写,将消息存储于ScyllaDB。

面对不断增长的用户数量,如Midjourney社区的超百万在线用户,Discord团队优先考虑了用户体验和服务器性能。工程师Yuliy Pisetsky强调了操作速度的重要性,指出即时反应是提供良好体验的关键。

Discord工程师深入了解系统性能,监测Guild进程事件处理循环的关键指标,通过进程堆栈跟踪分析消息处理延迟问题。此外,开发了辅助库估算大对象内存使用,并实施了优化措施,缩短消息处理时间。

团队通过减少Guild进程工作量取得显著成果,如禁用被动会话通知,降低了90%的扇出工作量。引入中继进程层提高了信息传递效率,减轻了Guild进程负担。

进一步的优化包括使用内存数据库ETS实现成员列表存储与进程间安全共享,以及创建独立发送进程以提高消息发送效率。

在HN论坛中,文章作者解答了社区关于Discord性能增强细节的问题。InfoQ翻译了相关文章,未经允许禁止转载。另外,推荐了几篇今日好文。

想要了解更多,点击 查看原文

为一线互联网公司核心技术人员提供优质内容。科技圈的观察者,前沿技术的传播者。

98 篇文章
浏览 4447
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设 白皮书上线