初探Soul网关week03_01

120 阅读1分钟

前言

今天要上线,少写点,抓紧去公司准备

网关数据变动调用链

实现 Websocket 通信的入口类 SoulWebsocketClient 在接到admin通信后, 调用 WebsocketDataHandler 的 executor() 方法匹配信息类型, 并调用对应的 DataHandler 的 handler() 去处理信息.

图:调用流程

图:AbstractDataHandler: 实现 handler() 方法, 根据事件的类型 (如刷新、更新、创建、删除等), 调用对应事件抽象方法.

XXXDataHandler: 这里指的是 AbstractDataHandler 的各个实现类 (如 PluginDataHandler 等), 主要作用是调用其订阅器.

不同的 DataHandler 调用的订阅方法不同:

  • PluginDataHandler 会调用 onSubscribe() 通知插件元数据变更
  • SelectorDataHandler 会调用 onSelectorSubscribe() 通知选择器元数据变更
  • RuleDataHandler 会调用 onRuleSubscribe() 通知规则元数据变更