【发布时间】:2018-06-20 22:19:54
【问题描述】:
我有 2 个微服务,A 和 B。当A 收到来自用户的请求时,它会被处理(在数据库中存储一些东西)并将消息发送到由B 读取的队列。
如果队列关闭,我最初的想法是让整个请求失败,回滚,并向用户显示错误,要求稍后再试。这是一种不好的做法吗?
将消息存储在A 的标记为NOT_SENT 的数据库中并在队列再次启动时有工作稍后发送它会更好吗?还是过度设计?
编辑:对A 的请求需要同步,所以用户知道它的结果,但他们不需要还需要知道B 处理消息的结果,所以它可以是异步的。
【问题讨论】:
-
有什么要求?
-
这就是我想要设置的。从业务的角度来看,第一种方法更好,因为它更快并且可以完成工作,但我想确保我们没有实施任何反模式。
标签: architecture queue message-queue microservices amazon-sqs