gpt4 book ai didi

twitter - 您将如何使用 Azure 表存储来处理类似 Twitter 的应用程序?

转载 作者:行者123 更新时间:2023-12-03 04:52:43 25 4
gpt4 key购买 nike

我正在考虑在一个非常简单的类似 Twitter 的应用程序中,我正在考虑仅支持推文和时间线。

但是我的头脑已经习惯了关系模型...无法在 Azure 表或 noSql 中提出合理的模型。基本上,我在想:

  • 用户可以将其他用户添加为 friend 们。
  • 用户可以写入消息(最多 200字符)。
  • 消息始终按以下顺序显示时间,最新的在前。
  • 用户页面显示他的最后 20 条信息消息。
  • 主页(时间线)显示他和他的人的最后 20 条消息 friend 们。

很简单:D

如果我将所有消息放在一个表中,并将 userId 作为分区键...一切都很简单,但是...我认为该解决方案的扩展性不是很好。但其他解决方案使时间线页面变得非常复杂或非常低效,因为它不是要从每个 friend 那里获取最新的 20 条消息,而是要从所有人那里获取最新的 20 条消息……这让我大吃一惊。可能您有一个非常烦人的 friend ,并且最近 20 条消息来自他:D

以 Azure 表的方式存储这些信息的可扩展且高效的方法是什么?

提前致谢。

最佳答案

我想说,单独使用 Azure 表存储是不够的。您还应该使用 Azure 队列。当消息进来时,它会被放入队列中。工作人员从队列中获取消息并处理它们。

  1. 消息出现在公共(public)时间轴(以时间戳为键的表)
  2. 工作人员获取发布消息的用户的所有关注者,并将消息的副本放在每个时间轴上(以 followerId 键控的表)
  3. 当然,该消息也会被放置在用户的时间线上。 (由 UserId 键控的表)

这似乎是一种浪费的方法,但您正在优化读取性能并实现写入的最终一致性。从读取端删除连接可以简化事情。

关于twitter - 您将如何使用 Azure 表存储来处理类似 Twitter 的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4717691/

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