Python 处理这个问题最快的方法是什么?
在我的应用程序中,我正处于一个十字路口——我正在使用python/django、mysql和Ubuntu12.04 我的应用程序将在线访问其他应用程序,对其路径结构进行索引,并提交表单。如果你认为10或100个帐户中每个帐户有一个或多个域名,那么性能可能会有点失控 我最初的想法是设置一个ec2环境,将访问每个域上所有这些路径的负载分布在多个ec2实例上,每个实例运行芹菜/rabbitmq,将处理负载分布在这些ec2实例上 问题是-我想存储提交表单的结果,我可以访问这些表单。我读到我可能需要使用nosql数据库(例如hadoop、redis等) 我向大家提出的问题是:Python 处理这个问题最快的方法是什么?,python,django,performance,hadoop,amazon-ec2,Python,Django,Performance,Hadoop,Amazon Ec2,在我的应用程序中,我正处于一个十字路口——我正在使用python/django、mysql和Ubuntu12.04 我的应用程序将在线访问其他应用程序,对其路径结构进行索引,并提交表单。如果你认为10或100个帐户中每个帐户有一个或多个域名,那么性能可能会有点失控 我最初的想法是设置一个ec2环境,将访问每个域上所有这些路径的负载分布在多个ec2实例上,每个实例运行芹菜/rabbitmq,将处理负载分布在这些ec2实例上 问题是-我想存储提交表单的结果,我可以访问这些表单。我读到我可能需要使用n
- 是否有不同的方式将芹菜/rabbitmq与SQL db一起使用,其优点/缺点是什么? 我可以看出必须使用nosql的一个问题:学习曲线李>
- 第二:是否有其他方法来分配在多个ec2环境中同时运行的多个python脚本的(处理)负载李>
这正是芹菜所做的,您可以在多台机器上设置您的工人,这些机器可以是不同的EC2实例。然后,您所要做的就是将他们的芹菜安装指向配置中的相同队列/代理。如果您希望在代理(RabbitMQ和/或Redis)中实现冗余,那么应该考虑在集群配置中设置它们 当然可以在多台机器上运行芹菜。它将把任务分发给从属节点。至于nosql,我会研究redis和mongodb。两人都擅长他们的工作,非常彻底。谢谢@RicoIn您的#3回复:如果是分布式的,它会将值存储在nosql数据库(如redis)上吗?或者可以(在每个ec2节点上)使用mysql吗?@CodeTalk当然可以,但这是排队机制,而不是任务结果
# sqlite (filename) CELERY_RESULT_BACKEND = ‘db+sqlite:///results.sqlite’
# mysql CELERY_RESULT_BACKEND = ‘db+mysql://scott:tiger@localhost/foo’
# postgresql CELERY_RESULT_BACKEND = ‘db+postgresql://scott:tiger@localhost/mydatabase’
# oracle CELERY_RESULT_BACKEND = ‘db+oracle://scott:tiger@127.0.0.1:1521/sidname’