Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python系统设计。奴隶主?还是多个主人?_Python_Mysql_System Design - Fatal编程技术网

Python系统设计。奴隶主?还是多个主人?

Python系统设计。奴隶主?还是多个主人?,python,mysql,system-design,Python,Mysql,System Design,最初,这是一个小项目,只有150个帐户,我用python编写了一个selenium程序来完成一个小任务。它使用一台电脑,耗时约5小时。不过,现在我希望扩大到1000个账户。由于明显的原因,我不想在一台计算机上完成这项任务,这项任务需要每天完成一次,而在一台计算机上完成这项任务显然需要30-35个小时。我想使用多台机器,但也希望能够轻松扩展到三台、四台或更多 我已经将所有帐户的数据移动到amazon云数据库中,并且可以轻松地从python程序连接到该数据库。然而,正如我前面提到的,我希望这个项目能

最初,这是一个小项目,只有150个帐户,我用python编写了一个selenium程序来完成一个小任务。它使用一台电脑,耗时约5小时。不过,现在我希望扩大到1000个账户。由于明显的原因,我不想在一台计算机上完成这项任务,这项任务需要每天完成一次,而在一台计算机上完成这项任务显然需要30-35个小时。我想使用多台机器,但也希望能够轻松扩展到三台、四台或更多

我已经将所有帐户的数据移动到amazon云数据库中,并且可以轻松地从python程序连接到该数据库。然而,正如我前面提到的,我希望这个项目能够很容易地扩展。我不想硬编码值,也就是说,一台计算机执行帐户1-500,另一台执行501-1000(如果我再添加500个帐户和两台计算机,会怎么样?我希望每台计算机执行1500/4)。我正在考虑一种主从式的方法。在每台机器上,我都有一个程序,可以用一些帐户作为数组调用。还有一个主程序,在我的机器上运行,每24小时一次,可以发送一个命令,其中包含每台机器应该使用的帐户

然后我希望程序将数据返回给我,当每个从机完成时,主程序将合并每个从机返回的数据,并相应地更新表。或者每个从机独立更新表,但我不确定这是否可能,因为表锁(如果有人对此发表评论,也会很有帮助)

谢谢你的阅读


编辑:如果你认为这太宽泛了,我不会寻找一个确切的答案。只是想找一个以前做过类似事情的人。只要列出一种我可以研究的技术或方法,就会对我有很大帮助

我以前也做过类似的事情,最后使用了主从式设计

我有一个拥有“作业”数据库的主机,奴隶们查询它来获取他们的任务

在我的例子中,过程是这样的:

  • 作业的从属查询主机
  • 主服务器发送50个作业,并使用从服务器名称更改数据库中的状态
  • 从机完成作业并通知主机
  • 掌握数据库中的更改状态以完成和发送新任务
  • 重复此操作,直到队列全部完成

  • 这样,随着作业队列的增大,我可以添加更多的从属服务器,它们可以具有不同的性能。我的一些奴隶比最慢的奴隶多做了3倍,这取决于互联网连接和页面加载时间。

    可能值得一看。为Fleet分配另一个容器很简单,etcd可以用来保存全局信息,比如数据库在哪里,谁是主容器(如果使用主/从方法)。使维护/管理分布式系统变得非常简单。非常感谢!我现在一定会开始研究的