我们正在构建一个 Web API,并使用 nServiceBus 为所有异步和长时间运行的进程在后台进行消息传递。
问题是当我们推出新版本的 API 时,我们应该使用一组新的队列吗?
就像,对于 API 版本 1,
- blobstore.v1.inbound
- blobstore.v1.outbound
- blobstore.v1.timeout
- blobstore.v1.audit
对于 API 版本 2,
- blobstore.v2.inbound
- blobstore.v2.outbound
- blobstore.v2.timeout
- blobstore.v2.audit
或者我们应该努力使用具有多种消息格式和处理程序的同一组队列(假设需求变化和不断发展的消息格式)?
我试图从架构的角度来理解长期的利弊。拥有一组单独的队列可以灵活地单独构建、部署和管理不同的 API 版本,而无需担心兼容性和社交性。
我个人倾向于后者,但围绕兼容性和升级的挑战尚不清楚。
如果您过去处理过类似的情况,请分享您的经验、想法、建议和建议。
非常感谢您的时间!