如何保持写操作的顺序?

时间:2019-07-24 06:26:57

标签: distributed

如果service_A正在发送2个写入请求,则为write_1和write_2。由于网络的不可靠性,write_2首先到达service_B,然后到达write_1。我们如何维持订单?

如果write_1用于更新新值,而write_2用于删除该值。到达顺序很重要。

我可以看到每个服务到服务交互都存在此问题。但是在大多数微服务设计书中,我看不到任何有关此问题的文章。

1 个答案:

答案 0 :(得分:1)

由于请求来自同一系统,因此需要解决的问题很小。 Service_A只是保持其已发送多少消息的运行计数器,并将下一个整数ID附加到每个消息。例如,当Service_B收到一条带有写请求和ID(例如7)的消息时,它将在收到并为ID 6的消息提供服务之前不会为该请求提供服务。这与其他协议(如TCP)的维护方式相似订购。