nacos可以实时检测到配置中心的配置是有修改,是因为使用了长连接形式:
客户端通过ClientWorker类开启线程不断循环发起http请求,并且在请求的时候,增加Long-Pulling-Timeout请求头30秒,然后发起http请求并设置为30秒后请求超时。服务端在接收到http请求后,通过读取请求头的长轮询超时时间,设置在29.5秒后再进行响应,期间如果有发送修改配置则立即返回响应,否则就等到29.5秒后再响应客户端。
此思想是减少http请求的次数,同时又能保证修改配置后的更新时效性,是一种折中的方案。