【需求认领】配置中心支持本地开发模式
What is the feature you want to add? 配置中心支持本地开发模式
Why do you want to add this feature? 在某些场景下,比如:
- 公司外网,连不上北极星服务
- 没有网络
- 为了研发配置互相隔离,直接使用本地的配置文件
需要支持直接读取本地的配置文件作为北极星的配置来源,而不是从北极星服务端读取。
How to implement this feature?
- Polaris-java 支持配置缓存到本地文件,这样初始化配置文件就非常方便,把缓存的配置文件作为基准版本,然后缓存的基础上修改配置即可。
- SCT 支持读取本地缓存的配置文件。 2.1 SCT 可以指定本地配置文件目录作为配置来源 2.2 SCT 监听根目录的配置变更,可以动态加载配置,并触发回调。 也就说,在SCT配置 API 层面,完全和远程模式一样
Additional context Add any other context or screenshots about the feature request here.
这个我来试试
@DoubleLuXu 感谢支持~
Polaris-java 支持配置缓存到本地文件,这样初始化配置文件就非常方便,把缓存的配置文件作为基准版本,然后缓存的基础上修改配置即可。 SCT 支持读取本地缓存的配置文件。 2.1 SCT 可以指定本地配置文件目录作为配置来源 2.2 SCT 监听根目录的配置变更,可以动态加载配置,并触发回调。 也就说,在SCT配置 API 层面,完全和远程模式一样
上面是我初步的想法,可能有些地方没考虑周全,有更好的实现。
目前北极星的一些治理规则会缓存到 polaris/backup/ 目录下,是不是也缓存到这个目录下,比如:
polaris/backup/config/${namespace}/${file_group}/${file_name}

然后在 polaris-java 里,如果连不上北极星服务的时候,可以 fallback 到本地缓存。这里可以新增一个配置开关,含义是当连不上北极星服务端时,是否fallback 到本地缓存。在有些场景下,为了高一致性,可能会关闭此功能。
同时也在 polaris-java 里实现监听 polaris/backup/config 目录的变更(通过目录的元信息判断?),触发回调事件。
这样的话,都在底层 polaris-java 实现,SCT 层面就不感知,只需要覆盖一些配置。
@DoubleLuXu 你这边有详细的设计之后,可以 issue 里写一下你的思路,我们讨论一下~
北极星的一些治理规则会缓存到 polaris/backup/ 目录下,是不是也缓存到
sorry,我刚才有点事。 这个我现在的想法是:这个属于配置方式,在polaris-java实现,SCT配置覆盖即可 1,缓存目录默认使用 polaris/backup/config 然后可以指定自己的项目配置路径,可以在本地开发的时候方便点。 2,北极星连不上是否fallback到本地缓存可以添加一个配置开关。 3,根据配置监听目录文件的变更,类似nacos中缓存文件变更,使用一个后台任务定时去扫描配置路径文件的变化,发布变更事件去触发配置的重新加载。 以上是我目前的想法,然后我还没看polaris-java的代码,我这几天研究下,有问题的话可以指出 我看代码后有新的想法也会放在这理讨论一下
北极星的一些治理规则会缓存到 polaris/backup/ 目录下,是不是也缓存到
sorry,我刚才有点事。 这个我现在的想法是:这个属于配置方式,在polaris-java实现,SCT配置覆盖即可 1,缓存目录默认使用 polaris/backup/config 然后可以指定自己的项目配置路径,可以在本地开发的时候方便点。 2,北极星连不上是否fallback到本地缓存可以添加一个配置开关。 3,根据配置监听目录文件的变更,类似nacos中缓存文件变更,使用一个后台任务定时去扫描配置路径文件的变化,发布变更事件去触发配置的重新加载。 以上是我目前的想法,然后我还没看polaris-java的代码,我这几天研究下,有问题的话可以指出 我看代码后有新的想法也会放在这理讨论一下
3的话不要使用定时任务,这个太容易出现问题,建议尝试java.nio.file.WatchService
北极星的一些治理规则会缓存到 polaris/backup/ 目录下,是不是也缓存到
sorry,我刚才有点事。 这个我现在的想法是:这个属于配置方式,在polaris-java实现,SCT配置覆盖即可 1,缓存目录默认使用 polaris/backup/config 然后可以指定自己的项目配置路径,可以在本地开发的时候方便点。 2,北极星连不上是否fallback到本地缓存可以添加一个配置开关。 3,根据配置监听目录文件的变更,类似nacos中缓存文件变更,使用一个后台任务定时去扫描配置路径文件的变化,发布变更事件去触发配置的重新加载。 以上是我目前的想法,然后我还没看polaris-java的代码,我这几天研究下,有问题的话可以指出 我看代码后有新的想法也会放在这理讨论一下
3的话不要使用定时任务,这个太容易出现问题,建议尝试
java.nio.file.WatchService
👌,我看了下WatchService 确实是更好的,感谢提醒
#640