2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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

作者:Rafal Gancarz

  • 2024-02-08
    北京
  • 本文字数:1312 字

    阅读完需:约 4 分钟

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

Discord 对其平台进行了优化,以便于在单台服务器上为超过 100 万在线用户提供服务,同时保持反应灵敏的用户体验。在系统可观测性和性能调优的支持下,该公司对负责发送数十亿条消息通知的 guild 组件进行了一系列的性能和可扩展性增强。


Discord 平台的关键元素是使用 Elixir 实现的,这是一门运行在 Erlang VM) 之上的函数式语言。基于 Elixir 的组件负责路由和向用户发送消息通知。Guild 服务器是管理 Discord 社区各种业务流的中心枢纽。Guild 进程会与很多会话进程进行交互,而这些会话进程使用 WebSocket 连接将消息投递到用户设备上的客户端应用程序中。架构的另外一个关键要素是 API 服务,它是使用 Python 编写的,负责将消息持久化保存到 ScyllaDB 中。



通过 Discord 平台的消息流(图片来源:Discord 工程博客)


鉴于之前的设计选择和平台限制,Discord 团队必须确保 Guild 进程能够继续处理不断增加的在线用户数量,例如,Midjourney 社区的在线用户数量就超过了一百万。Discord 的软件工程师 Yuliy Pisetsky 讨论了与服务器性能相关的用户体验考虑因素:


除了整体吞吐量方面的考虑因素之外,服务器越大,某些操作的速度就越慢。确保几乎所有的操作都能快速进行,这对服务器的响应速度至关重要:当发送一条消息时,其他人应该能立即看到;当有人加入一个语音频道时,他们应该能立即参与进来。如果处理某个昂贵的操作需要好几秒钟的时间,这会损害用户体验。


工程师们花了大量时间来理解系统性能。他们插装了 Guild 进程的事件处理循环,以捕获消息处理时间的关键指标。团队利用进程堆栈跟踪进行分析,寻找导致消息处理延迟的原因。他们还创建了一个辅助库,用于估算大型对象的内存使用情况,以便于帮助优化内存的使用。有了可观测性数据,他们实施了多项优化措施,大大缩短了某些消息类型的处理时间。


团队通过减少 Guild 进程的工作量取得了一些重要成果。他们禁用了被动会话的通知,在被动会话中,用户不会与他们所属的某些社区进行互动。仅这一项改变就使扇出(fanout)工作的成本降低了 90%,从而为不断增长的用户数量提供了急需的空间。


开发人员引入了一层新的中继进程,帮助在 Guild 进程和会话进程之间更高效地传递信息。中继进程接管了部分业务流的处理工作,从而释放了 Guild 进程来处理更多的用户。



中继进程层(图片来源:Discord 工程博客)


其他优化还包括使用了内存数据库 ETS,从而能够存储成员列表并在进程间实现安全地共享,以及创建一个单独的发送进程来向接收节点发送消息。


在 HN 论坛中,博文作者回答了社区提出的一些问题,社区对 Discord 实现的一些增强功能的细节很感兴趣。


查看英文原文:


Discord Scales to 1 Million+ Online MidJourney Users in a Single Server(https://www.infoq.com/news/2024/01/discord-midjourney-performance/)


声明:本文由 InfoQ 翻译,未经许可禁止转载。


今日好文推荐


Taylor Swift 身陷不雅照风波:AI 越强、Deepfakes 越猖狂,微软和推特们无法推责


Linus 开喷谷歌内核贡献者:你的代码是垃圾!网友:我们熟悉的 Linus 回来了


今年技术除了AIGC真没啥看头?别让“网红效应”遮住了真正的创新!


比VS Code快得多!用Rust重写,支持OpenAI、Copilot 的Zed编辑器开源了



2024-02-08 08:0014930

评论

发布
暂无评论
发现更多内容

AI淘汰歌手又近一步,昆仑万维正式上线Mureka V7

新消费日报

1688商品列表API接口指南

tbapi

1688API接口 1688商品列表接口 1688商品数据采集

录屏神器camtasia主要功能介绍,camtasia2024软件激活码密钥,Camtasia中文版免费下载

阿拉灯神丁

录屏软件 视频编辑工具 Camtasia Studio2024 视频剪辑软件

要不要接着造电车,车企站在十字路口

脑洞汽车

汽车 新能源

数字样机:改写卫星物联网的研制范式

DevOps和数字孪生

户外巨型LED屏幕租赁价格预算

Dylan

商业 活动 户外LED显示屏 虚拟演唱会 LED屏幕

区块链预付卡APP的开发成本

北京木奇移动技术有限公司

区块链开发 软件外包公司 web3开发

使用 Strands Agents 开发并部署生产级架构通用型个人助手

亚马逊云科技 (Amazon Web Services)

大数据-50 Redis Java Lua实现乐观锁、WATCH机制与SETNX分布式锁

武子康

Java 数据库 redis 大数据 缓存

见过“秒”级盘点吗?只需3~5秒,RFID盘点通道机让繁琐变得轻松高效!

斯科信息

RFID分拣 斯科信息 RFID技术

AI Agent 的制胜之道:上下文工程深度解析

十三Tech

网传“光刻工厂”真相揭晓,让我们用CST电磁仿真软件的方式打开它

思茂信息

cst CST软件 CST Studio Suite

1688商品详情API接口指南

tbapi

1688商品详情接口 1688数据采集 1688商品详情API

首家!AI算力最高评级!

百度Geek说

突破连接边界:EMQX 实现 MQTT 和 NATS 协议双向互通

EMQ映云科技

emqx nats

2025 AI主战场,连锁门店“变形记”

脑极体

AI

运维提效指南:如何通过轻帆云 AI 工单系统实现效率+60%跃迁

云智慧AIOps社区

运维 AIOPS ITSM 智能运维

AI赋能专卖人员画像与队伍评价,助力烟草行业人才队伍建设

中烟创新

区块链预付卡APP的上线流程

北京木奇移动技术有限公司

区块链开发 软件外包公司 web3开发

书本介绍:技术札纪——有限硬件与无限计算的权衡艺术

poemyang

云计算 分布式 高并发 Java虚拟机

智慧安全,数治风险:灯塔低代码平台赋能烟草行业安全管理体系

中烟创新

基于YOLOv8的桥梁八类缺陷、病害高精度检测项目|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!

申公豹

yolov8

AI背单词APP的功能设计

北京木奇移动技术有限公司

AI教育 软件外包公司 AI背单词

Post-Training on PAI (5): PAI-EasyDistill, PAI 自研大模型蒸馏框架

阿里云大数据AI技术

人工智能 大数据 开源 大模型 大模型蒸馏

从娃哈哈看传统企业转型:宗馥莉 700 亿营收的产品战略有哪些「可复用模型」?

IPD产品研发管理

产品 产品经理 商业

重磅发布《央国企数智化转型发展报告(2025)》

信通院IOMM数字化转型团队

数字化转型 数智化转型 央国企数智化转型 央国企数字化转型

从频繁告警到平稳发布:服务冷启动 CPU 风暴优化实践

vivo互联网技术

性能优化 后端 服务器 Arthas

机器人技术:AI之后的新增长极|小奇说

奇点云

自动驾驶 AI 机器人

2025可信云大会成功召开,天翼云揽获多项权威认证!

天翼云开发者社区

可信云 天翼云

天翼云多活容灾服务项目入选“2025年度央国企云容灾领航者典型案例”!

天翼云开发者社区

安全 容灾

Discord 使用单台服务器服务于 100 万在线 MidJourney 用户_AI&大模型_InfoQ精选文章