当我们在 soul-admin
更改 selector
或者 rule
时,数据是怎么同步到网关内存中的呢。
我们知道 soul
网关有四种数据同步的方式,http
长轮询,websocket
,zookeeper
,nacos
,数据同步处理就是在这些 listener
里进行的,默认使用 websocket
同步。今天也主要是看 websocket
同步方式。
以更新 selector
为例,执行过程是在 publishEvent
方法。
这里使用 eventPublisher
(也就是ApplicationEventPublisher
,spring
自带的一种事件发布机制) 发布一个 DataChangedEvent
事件。
DataChangedEventDispatcher