Bootstrap

dubbo源码分析9-心跳机制

服务端心跳机制分析

启动心跳检测   
public HeaderExchangeServer(Server server) {
        if (server == null) {
            throw new IllegalArgumentException("server == null");
        }
        this.server = server;
        this.heartbeat = server.getUrl().getParameter(Constants.HEARTBEAT_KEY, 0);//心跳周期间隔时间 默认60000,
        this.heartbeatTimeout = server.getUrl().getParameter(Constants.HEARTBEAT_TIMEOUT_KEY, heartbeat * 3);//心跳超时时间, 默认是heartbeat 的3倍
        if (heartbeatTimeout < heartbeat * 2) {//heartbeatTimeout 不能小于heartbeat 的2倍
            throw new IllegalStateException("heartbeatTimeout < heartbeatInterval * 2");
        }
        startHeartbeatTimer();//启动心跳检测线程
    }
HeaderExchangeServer构造方法,它获取了心跳相关参数,启动心跳线程,这个心跳任务 每隔一段时间向当前server的所有channel(就是所有客户端)发送心跳。

任务启动分析</

;