京东hotkey-客户端源码讲解汇总

305 阅读1分钟

总体来说hotKey客户端使用的是 发布订阅架构

image.png

上图可以看到 主要有三个Subscriber

  • newhotkey的处理
  • rule规则 变动的处理
  • worker节点 变动的处理

是不是瞬间项目的结构就清晰多了

client主要功能实现

  • neety 网络io封装
  • caffienge 本地cache封装
  • 三大订阅事件的处理

客户端-处理的事件

可以看到 处理两种事件 pong 和 newkey 对应服务端的heatbeatFilter 和 AppServerPusher 类的处理逻辑 image.png

newkey事件流程: 通过事件总线解耦,最后将hotkey 保存到本地的caffeine 中

客户端-发布订阅模式/事件总线组件

EventBusCenter.getEventBus().post(new ReceiveNewKeyEvent(model));

image.png 谷歌提供的guava.jar 主要是为了模块节藕 ,EventBus主要分为两种,一种是同步消息总线(EventBus);另一种是异步消息总线(AsyncEventBus)。hotkey中使用的是EventBus 同步消息总线

客户端 和服务端什么时候建立的链接?