gpt4 book ai didi

scalability - 社交网站如何计算好友更新?

转载 作者:行者123 更新时间:2023-12-03 10:00:22 25 4
gpt4 key购买 nike

社交网站可能会为用户、 friend 和事件维护表格......

他们如何使用这些表以高效且可扩展的方式计算好友事件?

最佳答案

许多社交网站(如 Twitter)根本不使用 RDBMS,而是使用 Message Queue 应用程序。他们中的很多人都是从一个已经存在的应用程序开始的,比如 RabbitMQ。其中一些变得足够大,他们必须大量定制或构建自己的。 Twitter 正在第二次这样做。

消息队列应用程序通过为一项或多项其他服务保存来自一项服务的消息来工作。例如,服务 Frank 正在向队列 foo 发布消息。 Joe 和 Jill 订阅了 Franks foo 队列。应用程序将跟踪 Joe 或 Jill 是否收到消息,一旦队列的每个订阅者收到消息,它就会丢弃它。弗兰克发送消息并忘记它。 Joe 和 Jill 向 foo 请求消息并获取他们尚未收到的任何消息。乔和吉尔对消息做任何他们需要做的事情。也许保留它也许不是。

消息队列应用程序保证应该获得消息的每个人都可以并且将在他们请求消息时获得消息。发布者可以发送消息,确信订阅者最终可以得到它们。这样做的好处是完全异步并且不需要昂贵的连接。

编辑:我还应该提到,通常这些东西的大规模存储是严重非规范化的。因此,Joe 和 Jill 可能正在存储完全相同的消息的副本。这被认为是可以的,因为它有助于应用程序扩展到数十亿用户。

其他阅读:

  • http://www.rabbitmq.com/
  • http://qpid.apache.org/
  • 关于scalability - 社交网站如何计算好友更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/762490/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com