对于我的新项目,每个组件都将部署在 Azure 中。我有一个使用 RabbitMQ 处理事件的第 3 方应用程序,我想订阅这些事件并处理它们以将数据存储在我自己的数据库中的事件中。
最好的方法是什么?使用 webjobs 并为 RabbitMQ 编写我自己的自定义触发器/绑定器?
感谢您提前的建议
根据您的要求,我认为 Azure WebJob 是实现您的目的的理想方法。在这种情况下,您可以使用 WebJob 作为消费者客户端来订阅事件并处理数据。请尝试创建一个 WebJob 并按照 Mitra 提供的链接订阅事件并在 WebJob 中实现您的逻辑流程。
请注意,WebJob 在 Azure Web App 的上下文中作为后台进程运行。为了让您的 WebJob 持续运行,您需要在标准模式或高度模式下运行并启用“始终开启”设置。
考虑到缩放,您可以使用 Azure 网站缩放功能来缩放额外的 WebJobs 实例。对于缩放,您可以参考本教程。
对于基于订阅的路由,您可以使用 Rabbitmq 中的主题。使用主题,您可以将事件推送到特定队列,然后这些队列中的消费者可以进行处理以将数据写入数据库。唯一需要注意的是每个队列都有一个正确的路由键。
这样你就可以拥有基于订阅的机制。这种方法唯一的好处是每个事件都会有一个队列。
每个事件有一个队列的好处是很容易跟踪事件和调试。
如果事件的数量非常大,那么您可以只有一个队列,但在消费完消息后,您必须触发事件。
以下是参考链接: https ://www.rabbitmq.com/tutorials/tutorial-five-python.html