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