Skip to content

ztyandjw/nodejs-apollo-sdk-hotfix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 

Repository files navigation

nodejs-apollo-sdk-hotfix

hotfix feature for nodejs using ctrip apollo config center

模拟java 客户端,完成nodejs 的热更新功能

通过推拉两种模式实现热更新,推模式维护长链接,服务端变动获取通知消息;拉模式为5分钟定期轮询,是一种最终一致性的方式

拉模式:

1、启动拉模式,本地落盘,更新缓存

2、每5分钟轮询,保证最终一致性

推模式:

1、循环进行推请求,服务端为异步servlet,DeferredResult实现,当60s后端没有更新,返回304,反之返回200,客户端记录notificationIdList,触发拉模式进行数据获取

2、若推模式接口发生问题,推模式客户端回进入无限轮询状态,那么需要保证如下两点

a: 漏斗算法,时间窗口获取数量受限

b: 每次发生错误,等待时间呈指数级增长

测试:

1、客户端启动,apollo关闭

客户端不再使用apollo,直接使用本地文件缓存

2、应用运行时,突然关停apollo

发现sync 轮询 间隔触发

发现long polling轮询等待时间会逐渐增长,逐渐增长到120s

3、恢复apollo,并且修改配置

客户端立刻感知到变动

5、禁止服务端longpolling机制,客户端syncPolling依然生效,并且只发生一次

About

hotfix feature for nodejs using ctrip apollo config center

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published