整体对soul插件有了个基本认识后,我们继续来研究下soul的数据同步是如何实现的?
原理分析
在了解soul数据同步原理前,不妨可以自己先试想下,要实现数据的同步,需要我们做些什么?
(1)网关如何从soul-admin去获取插件,规则,流量等数据?是通过什么样的方式去获取的?获取后数据是如何管理的?
(2)我们已经了解了插件,也知道插件流量规则是通过在admin页面上配置后动态实时的传给网关,网关根据这些规则来进行匹配路由的,那么admin页面配置后的数据是怎么传到网关的呢?
带着这些问题,我们阅读了官方文档:https://dromara.org/zh-cn/docs/soul/dataSync.html。
下面带着两幅图做下原理分析:
从图中可以看出一个用户登录soul-admin管理台后,在页面上对规则,插件,流量等增删改查的配置操作后,会将这些规则数据保存到mysql数据库,同时会保存一份数据到配置服务中心(也是soul-admin模块),服务中心会通过推拉两种可能的方式推送给到网关,具体是推模式还是拉模式取决于配置,如何配置?再往下一个图介绍。网关在启动时,