基本的客户端/服务器架构&互动

时间:2017-07-03 15:19:56

标签: node.js go architecture server client

我正在尝试实现客户端和服务器并定义他们的交互。客户端使用Golang设计,服务器在Node.js中设计,并使用gRPC进行交互。

所以基本要点是:

  1. 客户联系服务器以更新后端数据库
  2. 客户端收到服务器的成功响应
  3. 客户端随后会更改数据库现在反映的整个系统的状态
  4. 但是说发生了一些事情,使得流程在步骤2和3之间死亡(客户端流程以某种方式终止)。确保我的后端数据库不反映与现实不一致的系统状态的最佳方法是什么?我确信这不是一个新问题,只是想指出人们通常如何应对这种类型的设计。

    所以我已经考虑过重新设计这种交互,以便服务器是处理系统更改的实体 - 这样一切都在同一个请求和后端处理 - 但我使用的是设计的开源技术在Go中(所以我可以轻松地将它包装在我的Go客户端中)。换句话说,客户端必须是执行系统更改操作的实体。

    提前致谢!

1 个答案:

答案 0 :(得分:0)

  1. 客户端确认(响应服务器)它还更新了本地状态以与服务器同步。
  2. 如果4.没有发生,则服务器回滚在1中完成的事务,并且1-4的整个操作是原子的。