首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在java中设计心跳?

如何在java中设计心跳?
EN

Stack Overflow用户
提问于 2018-10-08 00:23:32
回答 2查看 0关注 0票数 0

我正在设计一个带有客户端和服务器的系统,客户端需要向服务器发送心跳以让服务器知道它还活着。客户端是用java编写的,客户端和服务器之间的通信是使用apache thrift,心跳需要由工作线程发送,因为如果我们使用backgound定时器发送心跳并且工作线程死锁,服务器会永远不会知道我该如何实现这种心跳机制?

EN

回答 2

Stack Overflow用户

发布于 2018-10-08 08:58:32

可以通过让服务器每隔几秒钟(例如4)发送一个查询数据包来实现简单的线路查询/线路响应机制,并且客户端在获得查询数据包时回复响应。如果服务器在一定的秒数(例如15)或多个查询数据包未响应(例如3)后没有从客户端回听,则可以将客户端标记为关闭并重新启动套接字连接。

票数 0
EN

Stack Overflow用户

发布于 2018-10-08 09:58:49

可以尝试看一下我为去年开展的项目所做的这个小框架。它专注于简单的实施,并且对客户状态提供强有力的反馈。基于UDP协议,发送一个包含id的有效负载,可以是一个NIC的MAC地址,也可以是你或其他人自动选择和设置的id,它确认客户端是安全的。基于听众,然后根据心跳协议计算客户端状态的内容接收各种事件。

我认为将它与TCP套接字一起使用来了解你是否有能力通过TCP流发送数据是很方便的。通过对客户状态的持续反馈,可以轻松实现这一目标,例如通过在某种地图中保存客户端状态并在发送任何类型的数据之前进行检查。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100000826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档