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

文件:590m.com/f/25127180-481124286-469239
(访问密码:551685)

以下内容无关:

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

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

AXURE9最全的WEB设计元件库(分享版).rplib相关推荐

  1. Axure通用web端元件库rplib文件格式+移动端app通用元件库rplib文件格式+电脑端动态可视化图表元件库+数据展示+操作反馈+通用模板+数据录入+列表页+表单页+详情页+通用版布局

    作品介绍:Axure通用web端元件库rplib文件格式+移动端app通用元件库rplib文件格式+电脑端动态可视化图表元件库+数据展示+操作反馈+通用模板+数据录入+列表页+表单页+详情页+通用版布 ...

  2. axure手机页面设计说明_使用Axure打造最佳的移动端交互原型教程(附元件库分享)...

    一直以来Axure在对移动端原型设计方面的支持都不是十分理想,它没有像目前其它几类原型设计工具(Justinmind.墨刀等)一样提供移动端设备的模板和相关交互组件,但是Axure自由灵活的特性却同样 ...

  3. 写给大家看的Web设计书:第3版(世界级设计大师指点迷津)(全彩印刷)

    写给大家看的Web设计书:第3版(世界级设计大师指点迷津)(全彩印刷) 基本信息 原书名: The Non-Designer's Web Book, 3rd Edition 原出版社: Peachpi ...

  4. axure 导入元件库显示不出白框_AXURE免费元件库分享-web

    分享个WEB端axure元件库 下面是元件库地址:链接:https://pan.baidu.com/s/1jq_EHEVG_ke9eFyNV--D7g 提取码:4oli 复制这段内容后打开百度网盘手机 ...

  5. 元件库导入_最新版字体图标元件库分享,一套绝佳的矢量字体图标元件库

    这次分享的FontAwesome v5字体图标元件库,是根据官方的最新版本v5.7.2整理完成的,包含了更全面的图标类型和丰富的图标数量,相信可以满足大多数同学在原型设计中的使用需求. FontAwe ...

  6. mysql数据库:最全MySQL数据库设计建库、建表规范及经验(踩过坑才能积累经验!)

    废话 这两天还是在做刚接手的小项目,也是第一次一个人负责整个项目的所有流程,最后交给客户. 当自己去接触项目时,真的会踩很多很多坑,当然解决了就是很大的进步与成长.昨晚我就意识到自己给自己留了一个大坑 ...

  7. Axure移动端实用元件库分享

    链接:https://pan.baidu.com/s/1Ghj-iCkuyTkMEG3M3rTM1A 提取码:pl3x

  8. Axure9 自建元件库+编辑

    在画图的时候,做一个轮播图或者中继器做一个表格,会比较费时间,这些通用性比较强的,我们可以做成我们自己的元件库,就可以随时拿来用了,下面是步骤哦: 1.打开Axure9,点击文件-新建元件库-系统会自 ...

  9. 信息架构:超越Web设计(第4版)(全彩) 中文pdf扫描版

    信息架构:超越Web设计(第4版) 的前三个版本都是信息架构领域的开山著作.其中描述了信息组织的普遍和永恒原则,这一原则也适用于不断增长的移动世界.在第4版中,作者运用大量最新的插图和例子为这些原则提 ...

  10. Axure元件库汇总分享

    最近公司要前端参与产品设计的工作,对于从无产品经验的门外汉来说,真的是太难了,而且领导还一直催着要结果,心里面瞬间都一万个.....在奔跑,然后就开始疯狂的查找资料,首先开始的就是<产品经理社区 ...

最新文章

  1. CF3B Lorry (手动模拟01背包,贪心)难度⭐⭐⭐
  2. Vivado的helloword程序:硬件工程部分
  3. python生物数据分析师职业技能_数据分析行业各个职业需要的技能是什么?
  4. Mysql大数据中表分区的应用
  5. custom Idp sapdev 申请用户
  6. JavaOne 2012:使用HTML5和Java构建移动应用程序
  7. jmeter集合点使用方法:Synchronizing Timer
  8. 逐帧动画与人运动动画制作
  9. [linux]centos6.3安装flash插件rpm方式
  10. 开启MyBatis(二)创建工程
  11. coreseek mysql_coreseek,php,mysql全文检索部署(一)
  12. vue起服务时或npm install时遇到code EPERM errno -4048这样的报错,还有就是文字数量超出盒子可以设置多行省略或单行省略!!!
  13. Exp6 信息搜集与漏洞扫描 ——20164316张子遥
  14. P4165 [SCOI2007]组队 推柿子+差分
  15. 关于Android的post,get、cookie网络获取的一些坑
  16. 【华为2019年校园招聘】2019-4-17 软件题-水果摊小买卖
  17. 【制作ppt的软件】Focusky教程 | 视频全屏播放
  18. 专业表操作鉴权(增、删、改、id查、全查、名字模糊查)
  19. 画质超高的仙侠java游戏_画质超高的游戏有哪些?顶级画质大型游戏盘点
  20. 对于微信支付宝支付的总结

热门文章

  1. Google翻译api接入及Java、Python实现
  2. windows打开属性就显示资源管理器重启(解决方法)
  3. 免费搭建一个云音乐网站
  4. 考软考信息处理技术员之前,这些问题你要知道!
  5. 彻底卸载流氓软件如360等 1. 使用卸载软件(附下载链接) 2. 安全模式删除两种方法
  6. 一个案例,入门Java动态代理技术
  7. CAN FD协议描述
  8. S32K的flexcan组件can fd使用
  9. Flir Blackfly S工业相机:颜色校正讲解及配置与代码设置方法
  10. 计算机管理界面截图,电脑网页页面太长怎么截图网页界面滚动截图的三种方法...