gpt4 book ai didi

delphi - 如何将 DataSnap 客户端连接定向到各种 DS Server?

转载 作者:行者123 更新时间:2023-12-03 15:58:28 25 4
gpt4 key购买 nike

我有一个相当大的 DataSnap 服务器,它将 24/7 运行,它将替代当前运行的 MIDAS (COM) 服务器。现在我面临的问题是如何更新该服务器而不必强制断开所有连接的客户端。

使用当前的 midas 服务器(顺便说一句,没有大量的服务流量),我只需等到没有连接,然后关闭服务器应用程序并替换 exe 文件。如果在服务器“关闭”时发生新连接,因为它是 COM 对象,它将被操作系统“拉起”,不会给客户端带来任何问题。

新的 DataSnap 架构不再基于 COM(太棒了!),但这样我就失去了在不导致新连接失败的情况下停止服务器的机会。

我认为某种 TCP“代理”或“隧道”可以解决我的问题,因此我可以简单地将新的服务器 exe 放在某处,并让该“代理”将客户端连接重定向到新的 DS 服务器。我尝试过 TIdMappedPortTCP,但它在服务器-客户端对话框的随机点处持续挂起。

有什么想法吗?

编辑:出于效率原因,我在纯 TCP/IP 传输上使用 DataSnap,因此 http 代理不适合我的具体情况。

最佳答案

也许您应该看看类似于命名服务的东西?可以像 Datasnap 服务器一样简单,您可以在该服务器上进行方法调用并返回“主”服务器的 IP 地址。然后,当您想要删除服务器进行维护时,您可以更改命名服务器分发的 IP 地址,这样新的客户端就会路由到它。当您的主服务器备份后,您可以将 IP 更改回来。

您仍然遇到 Bootstrap 问题(即,他们如何找到命名服务器的 IP),但这可以很简单,只需在客户端的配置文件中包含几个 IP 地址,如果第一个失败,则丢弃回到第二个。

关于delphi - 如何将 DataSnap 客户端连接定向到各种 DS Server?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11824347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com