【发布时间】:2017-12-06 22:22:41
【问题描述】:
我正在尝试实现客户端和服务器并定义它们的交互。客户端使用 Golang 设计,服务端使用 Node.js 设计,它们使用 gRPC 进行交互。
所以基本要点是:
- 客户端联系服务器以更新后端数据库
- 客户端收到服务器的成功响应
- 然后客户端本身会更改 DB 现在反映的整个系统的状态
但是说发生了一些事情,使得进程在第 2 步和第 3 步之间终止(客户端进程以某种方式终止)。确保我的后端数据库不反映与现实不一致的系统状态的最佳方法是什么?我确信这不是一个新问题,我只是想知道人们通常如何应对这种类型的设计。
所以我已经考虑过重新设计这种交互,使服务器成为处理系统变化的实体——这样所有事情都在同一个请求和后端处理——但我使用的是一种开源技术在 Go 中(所以我可以轻松地将它包装在我的 Go 客户端中)。换句话说,客户端必须是执行系统更改操作的实体。
提前致谢!
【问题讨论】:
标签: node.js go architecture server client