Axure9常用到的WEB设计元件库,在Axure点击+号即可导入元件库使用,或者打开Axure R9安装目录,进入DefaultSettings\Libraries,复制资源到此目录并重启Axure软件即可看到。

以下内容无关:

-------------------------------------------分割线---------------------------------------------

Nacos Client会维护一个定时任务通过持续调用服务端的接口更新心跳时间,保证自己处于存活状态,防止服务端将服务剔除,Nacos默认5秒向服务端发送一次,通过请求服务端接口/instance/beat发送心跳。

客户端服务在注册服务的时候会增加一个心跳的任务,如下图所示:

首先看下BeatInfo这个类,重点看标注的字段,该字段是给周期任务设定时间,如下图:

该方法内部定义的一个DEFAULT_HEART_BEAT_INTERVAL的常量,设定5秒:

接下来我们看下addBeatInfo方法,该方法内部主要是将BeatTask任务加入到线程池ScheduledExecutorService当中,如下图:

重点部分就是看BeatTask,BeatTask继承Runnable,run方法就是我们的重点,该方法调用了NamingProxy的sendBeat方法,服务端请求地址为/instance/beat的方法

接下来我们把目光放到服务端,找到InstanceController的beat方法,如果是参数beat信息的话,说明是第一次发起心跳,则会带有服务实例信息,因为发起心跳成功则服务端会返回下次不要带beat信息的参数,这样客户端第二次就不会携带beat信息了。如果发现没有该服务,又没带beat信息,说明这个服务可能被移除过了,直接返回没找到。如果没有服务,但是发现有beat信息,那就从beat中获取服务实例信息,进行注册,整体执行流程如下图:

View Code

接下来我们看一下processClientBeat方法,该方法将ClientBeatProcessor放入到线程池中,接下来我们看下重点看下run方法,

该方法内部主要就是更新对应实例下心跳时间,整体上如下图:

至此完成了从客户端到服务端更新实例的心跳时间,下图是整体的时序图:

服务的健康检查

Nacos Server会开启一个定时任务来检查注册服务的健康情况,对于超过15秒没收到客户端的心跳实例会将它的 healthy属性置为false,此时当客户端不会将该实例的信息发现,如果某个服务的实例超过30秒没收到心跳,则剔除该实例,如果剔除的实例恢复,发送心跳则会恢复。

当有实例注册的时候,我们会看到有个service.init()的方法,该方法的实现主要是将ClientBeatCheckTask加入到线程池当中,如下图:

ClientBeatCheckTask中的run方法主要做两件事心跳时间超过15秒则设置该实例信息为不健康状况和心跳时间超过30秒则删除该实例信息,如下代码:

View Code

首先我们来看一下deleteIp方法,该方法内部主要通过构建删除请求,发送删除请求,如下图:

删除实例的接口如下图:

内部通过调用ServiceManager的removeInstance方法,如下图:

重点看下substractIpAddresses内部通过调用updateIpAddresses,该方法内部主要就是移除到超过30秒的实例信息,如下图:

到此完成删除实例的过程,整体的时序图如下:

接下来我们看标记不健康时候的代码,这部分代码在客户端注册的时候也出现相同的代码,只是我们略过了,这部分也是观察者模式的重要体现,从这里我们可以学习到的东西在于结合Spring的事件机制,轻松实现观察者模式,当然这个里面也有部分我感觉写的不太好,哈哈,大佬们看到勿喷。

首先我们看serviceChanged方法,该方法主要是发布一个服务不健康的事件,如下图:

接下来我们看下如何处理这个事件,这个时候涉及PushService这个类,整体的继承结构如下图:

我们看到该类的继承ApplicationListener接口,该接口是一个支持泛型的接口,传入了ServiceChangeEvent的类,此处就是对事件的处理,如下图:

接下来看一下onApplicationEvent方法,这个方法主要完成了准备数据,发送数据这几件事情:

View Code

接下里我们重点看下udpPush的方法,整个方法主要是通过一个Map对象来记录UDP请求,如果没收到就重试发送请求,整体如下:

View Code

服务端有发送,那么客户端就有接收的,接收部分我理解上是服务发现部分,这里我们就不做过多介绍,待下一篇再来聊聊。

3701汉化包 axure r9_AXURE9最全的WEB设计元件库(分享版).rplib相关推荐

  1. Axure7.0 以及 中文汉化语言包下载 axure汉化包

    支持 Axure RP Pro 正式版 当前最新版本 7.0.0.3184 不兼容6.5及以下版本! Axure7.0 下载地址:http://pan.baidu.com/s/1dEuR8YX Axu ...

  2. Axure RP 9最新版软件及汉化包下载

    官方安装包下载地址(速度较慢) 下载Axure RP 9 Beta MAC版:https://axure.cachefly.net/AxureRP-Setup-Beta.dmg 下载Axure RP ...

  3. 亲,你心念念的Axure9.0来了,请查收~ 内附Axure安装包+汉化包+授权码获取方式

    文章大纲 01 前言 02 Axure9.0 新特性 03 安装步骤 04 安装包免费获取途径 美国时间2018年9月5日Axure RP 9.0 Beta版在官方博客首次对外公布,一时间引来了不少全 ...

  4. Axure 7.0 正式版 + 汉化包 安装

    Axure 7.0 正式版 + 汉化包 安装 详情如下: Axure 7.0 正式版终于发布了,现在提供简体中文版给大家使用. Axure 7.0 正式版: 链接: http://pan.baidu. ...

  5. IntelliJ IDEA 2017.3-2018.1 全系列汉化包

    JetBrains 系列软件汉化包 关键字:  Android Studio 3.0-3.1 汉化包  GoLand 2017.3.2-2018.1 汉化包  IntelliJ IDEA 2017.3 ...

  6. PowerDesigner16.5汉化破解版安装教程(含安装文件、汉化包、破解文件)

    一.软件安装 1.下载安装包(包含安装文件.汉化包.破解文件),下载链接在文章最后,失效请留言 2.下载后文件内容如下 3.进入安装文件中双击安装文件等待初始化完成后选择next 4.继续下一步 5. ...

  7. ArcGIS,CC(Smart3D),ENVI....工作中常用软件的汉化包都在这,随你下载

    之前就不少粉丝抱怨 英语不好 四级勉强,六级无能 每天打开软件都是英文的 都是凭记忆使用一些功能 专业词汇也记不住,更是不懂 使用起来全凭机械记忆 一些软件安装中当时没找到汉化版 现在使用其他很是苦逼 ...

  8. webstorm 2017.2 汉化包 中文激活破解版(附汉化教程)

    WebStorm 2017是一款JavaScript开发工具,被誉为最强大的HTML5编辑器以及最智能的JavaSscript IDE,WebStorm2017带来了全新的功能和界面,并拥有代码补全. ...

  9. Samplitude pro x4完美汉化破解版|Samplitude pro x4 64位完美汉化破解版(附汉化包)下载 v15.0.1.139

    点击下载来源: Samplitude pro x4 64位完美汉化破解版(附汉化包) v15.0.1.139 Samplitude pro x4是一款音频制作软件,功能丰富,操作简单,工作流程顺畅,内 ...

  10. Android Studio 最新汉化包下载及安装方法,持续更新 IDEA

    今天将 Android Studio 从 3.0 版更新到了 Android Studio Chipmunk | 2021.2.1 Patch 2 版(2021.2.1.16) 搜索 chinese ...

最新文章

  1. 数据库基础笔记(MySQL)7 —— 存储引擎和视图 ( 完结撒花 )
  2. App小样在手机运行了一下
  3. zigbee抗干扰matlab仿真,基于Zigbee的扩频通信MATLAB仿真.doc
  4. [项目过程中所遇到的各种问题记录]编辑器篇——FCKeditor自定义上传路径配置...
  5. HTML多选框滚动条,《HTM单选.doc
  6. comboBox绑定数据库后SelectedIndexChanged事件出错
  7. html 转换xslt,XSLT xsl:template 元素
  8. Linux、Mac 命令行快捷键
  9. 什么样的人适合自学编程?你以为你自学难是为什么?来看看答案吧!
  10. 嵌入式操作系统内核原理和开发(改进的链表内存分配算法)
  11. LAV Filter 源代码分析 2: LAV Splitter
  12. VMware服务器虚拟化平台应急方案
  13. 静态密码已经OUT 探索身份验证新方式
  14. 三相逆变器双pi控制器参数如何调节_SPMSM控制:传统PI电流环参数的整定
  15. ISP(图像信号处理)介绍
  16. 基于javaweb的毕设基于java的系统设计与开发
  17. Windows 10,Server 2019 通过cobbler 实现批量自动化安装
  18. SQL Server电影院数据库管理系统【英文版-源码】--(Movie Theatre Management System Database)
  19. vim高亮多处,搜索多个关键词
  20. 华为交换机nqa配置

热门文章

  1. 用微型计算机原理做流水灯,微机原理流水灯设计.doc
  2. 钉钉机器人智能提醒_使用钉钉机器人定时发送消息
  3. Android,什么是MVP模式?
  4. Codeforces 950C Zebras ( 贪心 模拟 )
  5. 工作被拥抱变化了该怎么办?
  6. 一些外汇交易专业术语
  7. 程序员,你以为你很优秀,但却面试屡屡失败?
  8. OneZero第四周第一次站立会议(2016.4.11)
  9. 天大、中南、中山、北师、中科院地图学与地理信息系统GIS及遥感RS专业推免夏令营面试经历与题目汇总
  10. java 汉字拼音排序_[转]Java汉字按照拼音排序