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

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

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Axure RP9是一款强大的原型设计工具,它提供了丰富的Web元件库,可以帮助设计师快速地创建具有丰富交互效果的网页原型。这些元件库包含了各种常见的Web组件,如按钮、文本框、下拉菜单等,还包括了复杂的组件,如日历、图表和地图等。 使用Axure RP9的Web元件库设计师可以轻松地将这些元件拖拽到页面上,然后进行自定义的编辑。通过设置交互动作,设计师可以实现各种复杂的交互效果,如页面跳转、滚动效果、弹出窗口等,从而让用户可以更好地理解和体验网站的功能和交互逻辑。 除了提供基本的Web元件,Axure RP9的元件库还包含了一些常用的模板和样式,设计师可以直接使用,节省了大量的设计时间。同时,Axure RP9还支持自定义元件和样式,设计师可以根据自己的需求进行扩展和修改,从而实现更加个性化的设计效果。 总之,Axure RP9的Web元件库设计师提供了丰富的设计资源和功能,可以帮助设计师快速制作出具有交互功能的完整网页原型。它是一个非常实用和高效的工具,对于Web界面设计和交互设计的人员来说,是一款不可或缺的辅助软件。 ### 回答2: Axure RP9是一款流行的原型设计工具,它提供了丰富的web元件库,方便用户创建交互式的网页原型。这个元件库包含了各种常见的web元素,如导航栏、按钮、文本框、下拉菜单等,用户可以根据自己的需求选择合适的元件进行设计Axure RP9的web元件库还包含了一些高级的组件,如轮播图、选项卡、模态框等,这些组件能够帮助用户更好地展示网页的功能和交互效果。用户可以通过简单的拖拽操作将这些组件添加到原型中,然后进行组合、调整和样式设置,实现自己想要的网页效果。 此外,Axure RP9的web元件库还支持自定义元素,用户可以根据自己的需求创建新的元素,然后将其保存为组件,方便以后的使用。这个功能非常适合有特殊需求或者希望定制独特设计的用户。 总之,Axure RP9的web元件库是一个功能强大、丰富多样的工具,它为用户提供了丰富的web元素和组件,帮助用户快速创建交互式的网页原型。无论是初学者还是专业设计师,都可以通过Axure RP9轻松实现自己的设计想法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值