我需要建立一个restapi/服务器,在80ms内每秒响应超过15000个httpget请求,如果需要,我可以使用负载平衡器运行多个实例。在
服务器收到一个包含一系列条件(大约20个)的请求,需要对它们进行解析,并与一个规则集(大约2000个规则对所有20个条件都有不同的值,并有一个最终决定)进行比较,该规则集决定响应(是或否)。在
示例请求负载:
{"Country" : "DE",
"ID" : "998423-423432-4234234-234234",
"Criteria1": "8748r78",
"Criteria2": "Some String",
[...]
}
示例规则集(仍有待决定,但让我们从一个简单的设计开始):
^{pr2}$每个标准可以包含1到大约400个不同的值,所有字符串(例如ISO代码中的GEOs)。有些可能是空的,并被视为通配符。理论上可能有20个标准都有相同值的条目,但这是一个有待编写的规则引擎要解决的问题。在
我做了一些研究如何做到这一点:
我会在Heroku主持这个节目。在
所以问题是:在python中,哪些库和体系结构允许这样的速度?在
我会假设
我们可以建立一个快速查找,作为集合(匹配规则ID)的dict(列)的dict(列):
对于给定的示例数据,
^{pr2}$rule_lookup
现在包含然后我们可以快速地将标准与规则匹配,比如
它跑起来像
Timeit报告说,这在我的机器上运行大约930ns-应该足够快了;-)
相关问题 更多 >
编程相关推荐