我想听听社区对以下问题的一个很好的模式。
我有一个“do-everything”服务器,它是webserver,mysql,crawlers服务器。使用监控工具两三个星期以来,我总是看到我的爬虫正在运行时,我的平均负载超过5(一个4核服务器,可以直到4.00作为负载)。所以,我有另一台服务器,我想把我的爬虫搬到那里。我的问题是。只要我的爬虫服务器中抓取了数据,我就必须在我的数据库中插入。我不想打开远程连接并将其插入数据库中,因为我更喜欢使用Rails框架,顺便说一句,我使用rails,以便更容易创建所有关系等等。
要解决的问题:
服务器,具有已爬网数据(一堆csv文件),我想将其移动到远程服务器并使用rails将其插入到我的数据库中。
限制:我不想运行mysql(slave + master),因为它需要更深入的分析来了解更多写操作的发生位置。
思路:
从抓取工具移动csv以使用(ssh,rsync)删除服务器并在白天导入
在我的远程服务器可以提取的爬虫服务器中编写一个API(在白天多次)并导入数据
围绕这个主题的任何其他想法或好的模式?
答案 0 :(得分:1)
您注意到第二种模式稍有不同,您可以在web-app-server / db-server中使用API。爬虫将用于报告其数据。他可以分批,实时或仅在特定的时间窗口(白天/黑夜时间等)进行此操作。
此模式将让抓取工具决定何时报告数据。而不是让网络应用程序对数据进行“轮询”。