适用于开发和模拟的Lite Python AMQP服务器实现?

e-s*_*tis 5 python mocking amqp

在Django中,运行./manage.py runserver对于开发人员而言确实非常好,避免了设置和启动真正的Web服务器的麻烦。

如果您没有运行Django,仍然可以非常轻松地设置gunicorn服务器。

AMQP有类似的东西吗?

我不需要完整的实现,也不需要健壮的东西,只需为开发人员轻松安装和运行的东西。PyPi软件包会很棒。

芹菜不是答案。我不需要客户端,我需要服务器。就像迷你Python RabbitMq。

Ben*_*mes 4

我不知道有任何用 Python 实现的 AMQP 代理。我不知道一般情况下有“精简”实现;我认为实现 AMQP 代理非常复杂,以至于那些尝试它的人要么旨在接近 AMQP 规范的版本之一,要么根本不打扰。:)

我也不太明白运行代理如何带来与为 Web 应用程序运行测试 Web 服务器相同的问题。

如果您的应用程序不在其中运行,Web 服务器就不会做任何有用的事情,并且在您开发应用程序时,无需进行完整部署即可运行它是有意义的。

但是您没有实现代理的内部结构,并且您可以动态配置它(与 Web 服务器不同),它不需要在每次更改代码时自行重新启动。交换器、绑定和队列可以由被测试的应用程序声明,然后自动删除。

安装 RabbitMQ 一点也不困难,而且几乎不需要任何配置(如果有的话),因为它带有默认的虚拟主机和来宾用户帐户,非常适合在隔离的测试环境中使用。因此,让 RabbitMQ 在我的测试机器上运行从来没有遇到过问题。

也许你遇到了一些我没有想到的特殊问题;如果是这种情况,请发表评论(或扩展您的问题)来解释它。


编辑:最近我对基于 AMQP 的应用程序进行了大量测试,我发现 RabbitMQ 的管理插件非常有用。它包括一个HTTP API,我用它来做一些事情,比如为每次测试运行创建一个新的虚拟主机,然后销毁它以清理代理的状态。这使得在共享代理上运行测试的侵入性大大降低。使用 HTTP API 来管理此操作,而不是测试 AMQP 客户端,可以避免测试变得有些循环。