找不到有关此主题的任何内容。
我有一个 Windows TCP C++ 服务器应用程序,我想不时更新它。
正如您显然理解的那样,这会带来一个问题 - 从用户的角度来看,服务器应该是 24/7 的。
更新时,还希望保持与用户的当前 TCP 连接。
我一直在考虑一个类似模块的系统,例如套接字处理模块将驻留在“sockets.dll”中,服务器的逻辑将驻留在“logic.dll”中。
采用这种方法似乎打开了潘多拉的盒子。
- 我将如何进行模块的实际“交换”?想象一下,X 工作线程不断地从一个模块向另一个模块发送数据——交换时我需要一种(轻快)的方式来暂停/暂停它们;也许是信号?
- 协议版本,甚至函数签名在更新时可能会发生变化。如何处理?
- 其他问题,例如未被注意到的逻辑错误。
- 谁知道会出现其他问题。
除了上述之外,我还担心如何更新 10 台服务器?我的意思是,它们都相互连接,相互交流。
如果更新引入了协议修改,它可能会导致巨大的问题,在这种情况下,我需要将整个集群(服务器)作为一个整体进行更新;关闭整个操作?这听起来不对,根本不对!我怎么做?我在这里缺少哪些概念以及如何学习它/它们?
我能做些什么吗?
你会怎么做?你做过这样的事吗?
您知道解决问题的任何机制/文章/项目/源示例/等吗?
任何有价值的建议都非常受欢迎!!