我在网络分析方面有个技术问题。在
Netflow流由PMACCT收集并发送到rabbitMQ进行分析。 分析将由python脚本完成,添加一些字段(如dnsstr)和其他网络信息。在
我用pika编写了一个自定义的消费者脚本,但是我的性能很差。我尝试过使用python多处理来提高性能,但是celeri的性能会更好(我猜)。在
你知道我是否可以用芹菜来消费这些数据(由PMACCT发送和序列化)?数据格式是一个带有字段的简单JSON对象(格式与Celery任务格式不匹配)。其他图书馆可以帮我吗?在
最终目标是在多个服务器(许多GB的流)上进行负载平衡流分析。在
我以评论的形式发表了这篇文章,但我想我会把它编译成一个答案。
Celery应该可以处理json数据。在
至于性能,我假设您使用的是Pika BlockingConnection模块。这是一个非常慢的实现,并且是crippled with bugs。如果您想将性能更改为AMQP库的C实现,例如librabbitmq应该可以大大加快速度,librabbitmq的一个优点是可以与Celery一起使用。在
librabbitmq的缺点是它不是线程安全的。有一些线程安全的替代方案可用;比如我自己的AMQP-Storm,或者来自pika维护者的Rabbitpy。在
相关问题 更多 >
编程相关推荐