我们正在考虑一种设计模式,其中
- Web 服务尝试将数据插入数据库
- 如果该调用失败且 db 不可用
- 然后,我们将该数据传递到 Azure 服务总线
- 备份数据库后,其他一些服务将从服务总线读取数据并插入到数据库中。
我个人还没有看到这种模式,但是这个设计有什么问题吗?
通常使用排队系统的方式与您询问的方式略有不同。 如果目标资源(数据库(不可用,队列允许可靠的命令执行,并平衡资源上的负载,而不是压倒它。
步骤将是:
- Web 服务发送一条服务总线消息,其中包含需要插入到数据库中的数据。
- 后端服务正在查看消息并尝试插入到数据库中。
- 如果操作失败或数据库不可用,则重试该消息。