总体来说hotKey客户端使用的是 发布订阅架构
上图可以看到 主要有三个Subscriber
- newhotkey的处理
- rule规则 变动的处理
- worker节点 变动的处理
是不是瞬间项目的结构就清晰多了
client主要功能实现
- neety 网络io封装
- caffienge 本地cache封装
- 三大订阅事件的处理
客户端-处理的事件
可以看到 处理两种事件
pong 和 newkey
对应服务端的heatbeatFilter 和 AppServerPusher 类的处理逻辑
newkey事件流程: 通过事件总线解耦,最后将hotkey 保存到本地的caffeine 中
客户端-发布订阅模式/事件总线组件
EventBusCenter.getEventBus().post(new ReceiveNewKeyEvent(model));
谷歌提供的guava.jar
主要是为了模块节藕 ,EventBus主要分为两种,一种是同步消息总线(EventBus);另一种是异步消息总线(AsyncEventBus)。hotkey中使用的是EventBus 同步消息总线