我正在开发像Friendfeed这样的社交网络。当用户添加他的提要链接时,我使用cron作业来解析每个用户提要。这是否可以与大量用户一起使用,例如每小时解析10.000个链接还是会导致问题?如果不可能,Friendfeed或RSS阅读器上使用的是什么?
答案 0 :(得分:4)
您可以考虑在问题中添加一些有关硬件的信息,这对于那些希望为您的实施规模扩展提供建议的人来说有很大的不同。
如果你最终解析数以百万计的链接,那么一个大的cron工作将会成为问题。我假设你正在做以下事情(如果没有,你可能应该这样做):
这可以减少每小时生成的汗液量。
如果您正在收集数百万个Feed,那么您可能希望分发这些工作,这是您在设计数据库时可能需要注意的事项。
同样,请更新您的问题,详细了解您使用的硬件以及您的解决方案需要扩展的规模。没有什么能够“无限地”扩展,所以请务必现实:)
答案 1 :(得分:0)
没有足够的信息来判断这个设计是否合适,但要回答基本问题,除非你在10k问题上进行一些非常密集的处理,这对于每小时一个cron工作来说应该是微不足道的
有关您如何处理Feed的详细信息,特别是有关具有Feed的用户数量和每位用户的Feed数量的流程如何缩放,将有助于您提供进一步的建议。
答案 2 :(得分:0)
您的限制因素是对这10,000个Feed的网络访问权限。您可以按顺序处理订阅源,并且可能每小时执行10,000次(您需要平均约350毫秒的延迟)。
当然,您希望有多个流程同时完成工作以加快速度。
答案 3 :(得分:0)
您选择哪种解决方案,如果您取得成功(我希望如此),您将遇到性能问题。
正如FF的创始人所说:选择最佳实际解决方案的唯一解决方案是分析/测量。有了数字,选择将是显而易见的。
所以:在几个月内构建一个接近预期(=现实)情况的测试架构并进行配置文件/测量。
答案 4 :(得分:0)
您可能需要考虑查看IronWorker这样的大数据作业。它是为它而制造的,因为它是一项服务,您不需要处理服务器或扩展。它内置了调度,因此您可以安排一个工作任务每小时运行一次,然后该任务可以排队10,000个其他作业并并行运行它们。