Discord如何在单个服务器上扩展到数百万用户

鱼云 2024-12-16 22:04:41

在当今时代,应用程序可扩展性与网络、存储、安全性和数据本身同样重要。

翻译自 How up to of Users on a Guild (),作者 Chris J..

IT 系统不仅仅是处理数据并将其从一个位置移动到另一个位置以完成生产任务。根据用例,它们还涉及处理来自一个位置的数据并将其分发到多个位置,以便可以完成工作。

这就是“可扩展性”这个词的由来。可扩展性已经变得与完成工作所需的网络、存储、安全性(当然还有数据本身)同样重要。

知道什么是可扩展性。这个已有 7 年历史的免费/开源通信平台将文本、语音和视频聊天功能结合到一个简单的界面中,正在经历巨大的增长和对大规模可扩展性的需求。它在游戏玩家中很受欢迎,但也被世界各地的人们用来与朋友、家人和社区联系。

它是一种流行的工具,原因有很多:它免费、易于使用,并提供多种功能,使其成为强大的沟通和协作平台。它们包括:

管道用于

是连接超过1600万用户的最大平台。它是一个公共测试版的生成人工智能程序和服务,由创建和托管。功能相对简单:用户输入图像提示并返回 4 张图像。它可以是任何东西的图像:超级英雄、风景、水果、人类或许多其他物品或概念。

一旦用户生成了图像,他们就可以在任何 NFT 市场上将其铸造成 NFT(不可替代代币),例如 . NFT 是一种与图像、视频或音频文件等独特数字对象相关的加密货币资产。 NFT 可用于证明数字艺术品的所有权并将其出售给他人。

类似于其他 AI 艺术生成器,例如 DALL-E 2、Bing Image 、Dream by WOMBO 等。但它有一些独特的功能,最显着的是它能够生成各种艺术风格的图像。而且由于它还可以根据多个提示生成图像,因此用户可以创建比其他 AI 艺术生成器更复杂、更详细的图像。

核心技术副总裁 Mark Smith 告诉 The New Stack,他们正在开发一个公共 API,允许开发人员创建自己的应用程序。不过,目前尚未公布何时推出。

社区提供了大部分流量。成员(通常在同一时间窗口内的人数超过 100 万)分享他们的作品、提出问题并帮助彼此学习如何使用它。其他几个在线社区也开始为用户提供服务,包括 和 。

显然这是这个新兴社区的增长支柱。但它也从一些优秀的开发工具中得到了很多帮助。

“出发点是他们有一个网站,但这是人们实际参与生成式人工智能体验的主要方式,尤其是它的社交方面,”史密斯告诉 The New Stack。 “能够与你的朋友聚在一起,生成一些人工智能艺术,聊天,享受乐趣,然后来回分享——这就是目标,现在仍然是。数百万人同时使用它。”

开发人员如何管理这一切?

它可在桌面、网络和移动设备上使用,允许用户创建和加入服务器,这些服务器本质上是专用于特定主题或兴趣的聊天室。服务器可以是公共的或私有的,并且它们可以具有不同级别的访问和审核。在服务器(也称为行会)中,用户可以创建频道,这些频道就像专用于特定主题或活动的子房间。频道可以是基于文本、语音或视频的。

保持所有这些渠道不间断、隔离和安全地运行——更不用说每分钟新用户和渠道的激增——是一个复杂的开发问题。然而,如果开发人员不知道使用什么工具来管理对数百万用户的部署以及在单个服务器上的部署,这就会成为一个问题。

“要成功做到这一点,你需要做两件事,”史密斯说。 “第一件事是您确实需要了解系统的性能以及系统可以做什么。它消耗了多少资源?第二件事是了解您想要提供的产品体验”。

深入了解开发流程的核心

这是通过利用在虚拟机(EVM,通常称为 BEAM)上运行的动态函数编程语言来实现的。它旨在构建可扩展和可维护的应用程序,并用于多种领域,包括 Web 开发、嵌入式系统、机器学习、数据管道和多媒体处理。

史密斯说,旧的可以再次成为新的。 “索尼爱立信在 20 世纪 60 年代为电信开发了它。对于像这样的用例,当你试图扩展通信以提高可靠性和效率时,它非常合适,”他说。

BEAM 使用基于进程的架构,其中每个进程都在自己的隔离内存空间中运行。 BEAM 可以限制需要较慢执行速度的请求来处理大量并发请求,而不会阻塞或减慢任何请求;这是处理所有查询的秘诀。

一些主要功能包括:

软件工程师 Yuliy 在最近的博客中写道:“每当 UI 上发生问题时,例如发送消息或有人加入语音频道,我们就会为在线的每个人更新客户端(有时称为“行会”)中的 UI。”邮政。 “我们为每台服务器使用一个进程作为该服务器上发生的所有事情的集中路由点,并为每个连接的用户的客户端使用另一个进程(‘会话’)。”

“行会进程跟踪属于该行会的用户的会话,并负责将操作分发给这些会话。一旦会话收到这些更新,它们就会通过连接将它们转发给客户端。”

尽管这些过程很复杂,但通过提供的自动化功能简化了它们,并且您已经掌握了如何使用此横向扩展工具。

一些流行的框架和库包括:

鱼云提供全球范围的云服务器和物理服务器租赁服务,具备强大的DDoS防御功能,确保您业务安全稳定运行,同时提供灵活定制和专业支持以满足多样化需求。
0 阅读:1