nacos server中PushService的原理和应用


这篇文章主要讲解了“nacos server中PushService的原理和应用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“nacos server中PushService的原理和应用”吧!本文主要研究一下nacos server的PushServicenacos-1.1.3/naming/src/main/java/com/alibaba/nacos/naming/push/PushService.javaPushService实现了ApplicationContextAware、ApplicationListener接口;它有两个ScheduledExecutorService,一个用于retransmitter,一个用于udpSender;其static代码块创建了一个deamon线程执行Receiver,同时注册了一个定时任务执行removeClientIfZombie,它会遍历clientMap,移除zombie的clientnacos-1.1.3/naming/src/main/java/com/alibaba/nacos/naming/push/PushService.javaReceiver实现了Runnable接口,其run方法使用while true循环来执行udpSocket.receive,之后解析AckPacket,从ackMap移除该ackKey,更新pushCostMap,同时从udpSendTimeMap移除该ackKeynacos-1.1.3/naming/src/main/java/com/alibaba/nacos/naming/push/PushService.javaPushClient封装了要推送的目标服务地址等信息,它提供了zombie方法来判断目标服务是否zombie,它判断距离lastRefTime的时间差是否超过switchDomain指定的该serviceName的PushCacheMillis(默认为10秒),超过则判定为zombieonApplicationEvent会处理ServiceChangeEvent,它会注册一个延时任务并将该future放入futureMap;该延时任务会从clientMap获取指定namespaceId, serviceName的clients;然后遍历clients判断是否是zombie,如果是的话则移除该client,否则创建Receiver.AckEntry,然后执行udpPush(ackEntry),最后从futureMap移除该future;serviceChanged方法提供给外部调用发布ServiceChangeEventnacos-1.1.3/naming/src/main/java/com/alibaba/nacos/naming/push/PushService.javaudpPush方法会根据Receiver.AckEntry的信息进行判断,如果其重试次数大于MAX_RETRY_TIMES则终止push,将其从ackMap、udpSendTimeMap中移除;如果可以重试则将其ackEntry.key放入ackMap及udpSendTimeMap,然后执行udpSocket.send(ackEntry.origin)及ackEntry.increaseRetryTime(),并注册Retransmitter的延时任务;如果出现异常则将其从ackMap、udpSendTimeMap移除nacos-1.1.3/naming/src/main/java/com/alibaba/nacos/naming/push/PushService.javaRetransmitter实现了Runnable方法,其run方法在ackMap包含ackEntry.key的条件下执行udpPush重试PushService实现了ApplicationContextAware、ApplicationListener接口其static代码块创建了一个deamon线程执行Receiver,同时注册了一个定时任务执行removeClientIfZombie,它会遍历clientMap,移除zombie的client其onApplicationEvent会处理ServiceChangeEvent,它会注册一个延时任务并将该future放入futureMap;该延时任务会从clientMap获取指定namespaceId, serviceName的clients;然后遍历clients判断是否是zombie,如果是的话则移除该client,否则创建Receiver.AckEntry,然后执行udpPush(ackEntry),最后从futureMa 香港云主机p移除该future;serviceChanged方法提供给外部调用发布ServiceChangeEvent感谢各位的阅读,以上就是“nacos server中PushService的原理和应用”的内容了,经过本文的学习后,相信大家对nacos server中PushService的原理和应用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是开发云,小编将为大家推送更多相关知识点的文章,欢迎关注!

相关推荐: 面向社会目标的复杂网络态势感知与取证分析

一、背景智能终端、移动应用、社交网络、物联网等为社会目标分析提供了丰富的素材,从而掀起了新的社会目标分析热潮。社会中的每个目标不是单独存在的,目标与目标之间、事件与事件之间、目标与事件之间存在复杂动态的网络关系。针对社会目标分析,我们需要一个分析方法,能够对数…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 07/30 13:34
Next 07/30 13:35

相关推荐