- 直接使用dashboard和sentinel配置各种规则时,默认是存在了内存中。如果服务器重启那么数据就会丢失,从而Sentinel提供了5中持久化的方式,将各种配置数据进行持久化,若服务器重启就重新加载持久化的数据,防止数据丢失。
1、持久化原理
Sentinel 为我们提供了两个接口来实现规则的持久化,他们分别是:ReadableDataSource 和 WritableDataSource。其中主要关注ReadableDataSource。
public interface ReadableDataSource<S, T> {
//将原始数据转换成我们所需的格式
T loadConfig() throws Exception;
//从数据源中读取原始的数据
S readSource() throws Exception;
//获取该种数据源的SentinelProperty对象,数据变化监听器
SentinelProperty<T> getProperty();
}
Sentinel 还为我们提供了一个抽象类:AbstractDataSource,该抽象类中实现了两个方法,具体的数据源实现类只需要实现一个 readSource 方法即可。
public abstract class AbstractDataSource<S, T> implements ReadableDataSource