2016-09-06 26 views
0

对于我的新项目,每个组件都将部署在Azure中。我有一个使用RabbitMQ处理事件的第三方应用程序,我想订阅这些事件并处理它们以将数据存储在我自己的数据库中的事件中。订阅和处理来自Azure中的RabbitMQ的事件

什么是最好的方式去?使用webjobs并为RabbitMQ编写我自己的自定义触发器/活页夹?

谢谢你的建议提前

回答

0

对于具有基于订阅的路由,您可以在RabbitMQ的使用主题。使用主题可以将事件推送到特定队列,然后这些队列中的使用者可以执行处理将数据写入数据库。唯一需要注意的是为每个队列准备一个正确的路由密钥。

这样你可以有基于订阅的机制。这种方法唯一的办法就是每个事件都会有一个队列。

每个事件有一个队列的好处是可以很容易地跟踪事件和调试。

如果事件的数量非常大,那么您可以只有一个队列,但消耗完消息后必须触发事件。

这里是链接参考: https://www.rabbitmq.com/tutorials/tutorial-five-python.html

1

根据您的要求,我认为Azure的WebJob是达到你的目的的理想方法。在这种情况下,您可以使用WebJob作为客户端客户端来订阅事件并处理数据。请尝试创建WebJob并按照Mitra提供的链接订阅事件并在WebJob中实现您的逻辑过程。

请注意WebJob作为后台进程在Azure Web App的上下文中运行。为了让WebJob持续运行,您需要以标准模式或高级模式运行,并启用“始终开启”设置。

考虑缩放比例,可以使用Azure网站缩放功能缩放额外的WebJobs实例。对于缩放,您可以参考tutorial