我想在我的数据库中创建一个条目。必须由我的一个微服务来完成。但是请求是通过另一个微服务从前端接收的。现在微服务使用restapi调用进行通信。我在java中读过,如果你想从一个微服务向另一个微服务发出请求,你必须在一个单独的线程中发出请求并强制超时。在python中,同样的事情,你必须强制超时。在
但是如果我的请求成功了,但是我的请求在线程中超时了呢?假设这是对数据库的关键插入。如果所有重试(假设3次重试)由于网络延迟而超时,但都是成功的插入操作,那又会怎样呢。然后假设在示例中,如图所示,用户在交货时下了现金订单,订单服务用新订单更新数据库,然后订单服务向支付服务发出一个httppost请求,向数据库中添加付款历史记录条目。现在,正如我所描述的,每次重试付款表中都会有3个重复条目。在
我们如何处理这个问题,在每次插入之前检查重复条目的操作不是很昂贵吗?在
我主要在前端工作,但现在我想切换到后端。这个问题一直在我脑子里,请帮帮我!在
Please have a look at this diagram for more clear understanding of the flow
您可以发送异步调用,但在这种情况下,您将不知道成功或失败的响应。在
对于重复条目,可以在接收端添加验证检查,以便在数据库中已存在记录时跳过插入
相关问题 更多 >
编程相关推荐