keepAlive是socket链接在没有数据交换时用来探测链接是否存活的一种心跳机制。固然也能够本身实现心跳机制而不使用自带的功能。java
当因为各类问题(在没有数据交换的状况下因为网络问题或者自身机器问题)致使socket没有正常关闭时,socket会一直占用句柄,这样致使了该释放的资源没及时释放。linux
java 自带的api没有提供设置心跳的具体参数:api
一、发送心跳的时间间隔;网络
二、当未受到心跳的ack消息时再次发送心跳的次数与时间间隔;socket
若是是在linux环境下可经过修改操做系统的配置文件进行设置。操作系统