config 客户端
com.alibaba.nacos.client.config.impl.ClientWorker#ClientWorker
构造方法中有定时任务
com.alibaba.nacos.client.config.impl.ClientWorker#checkConfigInfo
com.alibaba.nacos.client.config.impl.ClientWorker#checkUpdateConfigStr
发出检查配置的请求
config server
com.alibaba.nacos.config.server.controller.ConfigController#listener
server 处理请求
com.alibaba.nacos.config.server.service.LongPollingService#addLongPollingClient
server 使用了 servlet 3.0 的异步机制,用 ScheduledExecutorService 线程池来返回延时响应,
使用 ClientLongPolling 封装了 AsyncContext,timeout 参数,通过 AsyncContext 可以获取 request 和 response,
在 ClientLongPolling 的 run 方法中,用 ScheduledExecutorService 执行定时任务。
业务逻辑是,配置变化,立马返回,无变化,则延迟发送响应,使用的是定时器 ScheduledExecutorService。
servlet 异步处理:
https://www.cnblogs.com/davenkin/p/async-servlet.html
final AsyncContext asyncContext = req.startAsync();
asyncContext 可以获取 request 和 response,
asyncContext.complete();