假设客户端和服务器通过无状态通道进行通信的分布式通信系统 客户端向服务器发送请求,服务器处理并保留每个客户端的内部记录 当需要时,服务器会在系统发生各种事件时向客户端发回通知 通知机制取决于内部记录 我的问题是,分布式计算中用于处理客户端故障的标准方法是什么? 即在此上下文中,假设客户端进程崩溃或只是重新启动。 服务器仍然具有客户端的记录,但现在客户端和服务器是同步的。 因此,客户端将根据重新启动之前创建的记录获取通知。这是不受欢迎的 什么是检测客户端故障的标准化方法?例如。客户端已重新启动,以前的记录必须删除? 我想到了客户端的定期回调,如果客户端无法访问,请删除其记录,但我不确定这是不是一个好主意。 [编辑] 我想到了回调,因为发送回客户端的期间事件可能是非常大的间隔,因此客户端故障不会很快显现
有人可以帮忙吗?我的应用程序域的上下文是Web服务。
谢谢!
答案 0 :(得分:2)
标准方法因系统而异,具体取决于架构和域。服务器如何发现客户端已关闭?我认为您不需要回调,因为您发送通知并且可以检测到客户端无法访问。例如:
连接客户端时:
甚至更简单的方法:
这在很大程度上取决于系统中的事物组织方式。假设:
溶液: 1.服务器启动代理并注册刚连接到客户端列表的客户端。调度员收到新客户到达的通知。 2.代理会消耗记录,直到客户端连接为止。在客户端关闭和/或失败时,代理会注销客户端并清除记录集。
如果系统中的内容没有按上述方式组织,请提供一些详细信息。