0

在后端数据库和客户端之间存在数据库代理(例如,maxscale)的情况下,如果代理节点本身发生故障,写入会发生什么情况。具体来说,我对以下场景感兴趣:

  1. 客户端发出写入命令(假设启用了自动提交)。
  2. 数据库代理从客户端接收写入命令,并将其发送到后端数据库。
  3. 后端数据库接收写入命令,执行写入,提交事务并将确认发送回代理节点。
  4. 代理节点接收确认。但是,在代理节点可以将确认发送回客户端之前,它就死了。

在这种情况下,事务已经提交,并且就数据库而言,它的客户端(即代理节点)已被通知。但是,实际的客户端不知道事务是否已提交。

数据库代理如何处理这种情况?

4

1 回答 1

0

对于 MaxScale,当客户端连接突然关闭时,后端数据库连接也会关闭。这使得行为类似于服务器在没有代理的情况下的行为。

于 2017-03-17T14:20:56.383 回答