我在想一个非常简单的类似Twitter的应用程序,我正在考虑只支持twits和时间线。
但我的头,几乎习惯了关系模型......无法在Azure表或noSql中找到合理的模型。基本上,我在思考:
非常简单:D
如果我将所有消息放在一个表中,并将userId作为分区键...一切都很简单,但是......我不认为该解决方案可以很好地扩展。但是其他解决方案使得时间线页面变得非常复杂或非常低效,因为它不是要从你的每个朋友那里得到最新的20条消息,而是要从最后的20条消息中得到最新消息......这让我大吃一惊。可能是你有一个非常烦人的朋友,最新的20条消息来自他:D
以Azure表方式存储此信息的可扩展且有效的方法是什么?
提前致谢。
答案 0 :(得分:4)
我认为仅使用Azure Table Storage是不够的。您也应该使用Azure队列。 当消息进入时,它会被放入队列中。工作者从队列中获取消息并处理它们。
看起来这可能是一种浪费的方法,但是您要优化读取性能,并最终保持写入的一致性。从读取端删除连接简化了事情。