【发布时间】:2015-08-31 23:25:43
【问题描述】:
我希望在我当前的应用程序中开始使用 MassTransit 和 RabbitMQ 作为消息传递提供程序的功能。我想知道关于可能将 MassTransit 作为我的安装脚本的一部分所需的 RabbitMQ 工件的创建编写脚本的推荐做法是什么?我担心的是,如果系统没有按正确的顺序启动,消息可能会在我的消费者启动并开始订阅之前发布,因此可能会丢失一些消息。
【问题讨论】:
标签: rabbitmq masstransit
我希望在我当前的应用程序中开始使用 MassTransit 和 RabbitMQ 作为消息传递提供程序的功能。我想知道关于可能将 MassTransit 作为我的安装脚本的一部分所需的 RabbitMQ 工件的创建编写脚本的推荐做法是什么?我担心的是,如果系统没有按正确的顺序启动,消息可能会在我的消费者启动并开始订阅之前发布,因此可能会丢失一些消息。
【问题讨论】:
标签: rabbitmq masstransit
根据我们的经验,我们会在部署任何会向任何服务入口点发送消息的启动应用程序(例如公共 API、预定触发器等)之前部署服务。我们这样做是为了确保所有的环境设置、配置等都符合预期,并验证 RabbitMQ、集群等的配置。
我强烈推荐这种方法,因为它让操作人员有时间审查和理解新架构,因为您不会立即解决任何编程问题并且可以专注于设置和配置。
我们还使用Fooidity 来部署代码并保持新行为不可用,直到它启用以供客户使用。通过使用功能切换,任何公共用户都没有机会访问端点,直到它准备好用于生产使用。
我们从不尝试编写环境脚本并预先配置队列、交换等,因为它只是搞砸了,我们最终重置虚拟主机以让 MT 正确设置它.我不是说不可能,只是让 MT 配置一切更容易。
【讨论】: