pythondjangoddos_关于python:通过Django从Twisted应用访问数据库

原始问题

我想从Twisted异步应用程序中对数据库运行查询。例如,添加新记录,更新某些内容或仅获取一些数据。

我的建议

我想在Django中制作只有Twisted应用程序才能访问的特殊视图,这将对我需要的数据库进行各种操作。

在示例url domain.com/server/getuserdata/{{ user_id }}/中,将以某种方便的格式(json)返回有关用户的数据。

GET / POST请求在Twisted中会有所不同,因此不会阻止我的Twisted应用(如果我输入错了,请更正我)。

我的Twisted应用只会偶尔运行一次这些请求。这不是实时更新数据。实时数据将存储在Redis中,一旦准备好将其存储在Django数据库中,我就使用存储在Redis中的数据向Django运行请求。

但是每秒仍然会有很多来自服务器的请求(比如说100到1000)。

我读过的另一种方法

扭曲的nadbapi,但是自2007年以来就没有更新过,所以我不想老实地使用它

将请求存储在Redis中,并由另一个守护进程/应用程序或cron运行它们。

问题

将延迟对象用于Django的GET / POST请求是一种好方法吗?

我能以某种方式告诉Django Twisted应用程序是受信任的,因此它不会像DDOS那样对待它吗?

这样处理这么多请求是否足够快(当然使用缓存)?

有没有更好的方法来完成此任务?

我是Twisted的新用户,并且将异步应用程序与同步应用程序集成在一起,所以如果我输入了一些愚蠢的内容,我感到抱歉

嗯,我想我错过了一些东西。 您为什么不直接从Twisted应用程序中查询呢? twisted.enterprise.adbapi为大多数流行的数据库后端提供异步api ...

我认为adbapi是不可靠的。 另一件事是,我将不得不两次定义我的数据库模型(对于django和abdapi)。 我认为,使用RESTful api也会更加安全。 Deliciouspie是django创建RESTful api的绝佳应用。 使用多个数据库会引起其他问题。

Is using deffered objects for GET/POST requests to Django a good

approach?

我希望我有经验来深入回答这一问题。我相信,只要请求是异步的,您在扭曲的方面就可以了。我基于对龙卷风的基本经验。应用程序必须请求Web服务,这是相对普遍的,而龙卷风提供了一种异步方法来将其内置到框架中。

Can I somehow tell Django that Twisted app is trusted, so it won't

treat it like a DDOS?

我不认为django天生就知道请求什么服务。它不会限制速度或开箱即用。它只是响应对它的任何请求。如果还有更多请求,它将崩溃。 django可以处理多少请求,这是您项目上的变体以及如何部署它。您可以使用gunicorn轻松运行它,并让nginx坐在它前面。如果它不能正常运行,则可以启动另一个gunicorn实例。

Will this be fast enough with so many requests (using cache of

course)?

我想没有人能说。您可能必须自己进行基准测试。有许多博客文章/文章对各种django服务器配置进行了基准测试。

Is there any better approach of this task?

我认为这是一种相对常见的方法。通过RESTful接口通过django公开您的方法。从扭曲的异步需求。

感谢您的完整答复。 现在,我确信可以使用这种方法,在阅读了许多有关此问题的线程后,我并没有发现这种方法很常见。 我并没有知道Django没有针对DDOS的保护,现在我看到ip是文件服务器的责任。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值