【发布时间】:2016-06-11 03:03:57
【问题描述】:
最初它是一个小项目,只有 150 个帐户,我用 python 编写了一个 selenium 程序来与他们一起做一个小任务。它使用一台计算机,大约需要 5 个小时。但是,现在我希望扩展到 1000 个帐户。出于显而易见的原因,我不想在一台计算机上执行此操作,这项任务需要每天完成一次,并且显然需要大约 30-35 小时才能在一台计算机上完成此任务。我想使用多台机器,但也希望能够轻松扩展到三台、四台或更多。
我已将所有帐户的数据移至亚马逊云数据库,并且可以从我的 python 程序轻松连接到它。但是,正如我之前提到的,我希望这个项目易于扩展。我不想硬编码值,也就是让一台计算机执行帐户 1-500,另一台执行 501-1000(如果我添加 500 个帐户和 2 台机器怎么办?我希望每台机器执行 1500/4)。我正在考虑一种主从方法。在每台机器上,我都有一个程序,可以将一些帐户作为数组调用。还有一个在我的机器上运行的主程序,每 24 小时可以发送一个命令,其中包含每台机器应该使用的帐户。
然后我希望程序将数据返回给我,当每个从机完成时,主程序将合并每个从机发回的数据并相应地更新表。或者每个从站独立更新表,但我不确定这是否可能由于表锁(如果有人可以对此发表评论,这也会有所帮助)
感谢阅读!
编辑:如果您认为这太宽泛,我不是在寻找确切的答案。只是想找到以前做过类似事情的人。仅列出一项我可以研究的技术或方法对我有很大帮助
【问题讨论】:
-
可能值得一试CoreOS。使用 Fleet 分配另一个容器很简单,并且 etcd 可用于保存全局信息,例如数据库在哪里,谁是主服务器(如果您使用主/从方法)。使维护/管理分布式系统变得非常容易。
-
非常感谢!我现在一定会开始研究的
标签: python mysql system-design