Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

配置更新缓存问题 #15

Open
wayne-dong6 opened this issue Dec 11, 2024 · 1 comment
Open

配置更新缓存问题 #15

wayne-dong6 opened this issue Dec 11, 2024 · 1 comment
Labels
question Further information is requested

Comments

@wayne-dong6
Copy link

大佬,请教下,我理解获取nacos配置后会在磁盘缓存目录生成对应的文件,然后下次加载直接从磁盘读取这个流程;
但是如果对应的nacos配置有变更,我在去获取配置文件他还是从缓存获取,更新后的配置拿不到
删除对应的缓存文件也是一样,看起来是加载到本地内存了
请问,如何在nginx启动过程中去获取nacos更新后的配置呢

@zhwaaaaaa
Copy link
Collaborator

在 nginx 启动过程中, 会优先从 磁盘 获取 上次缓存下来的 配置。如果第一次启动磁盘没有缓存,就从调用 nacos 的接口拉取最新的。目的是 保证 在 nginx 的端口 打开之前 所有的数据都已经 准备到位,保证第一个请求的正确性。

如果 nginx 在运行过程中 nacos 配置更新了,会由 nginx 的辅助进程 订阅 nacos 刷新到共享内存,同时保存一份到磁盘,供下次nginx 重启时候使用,目的是 加快 nginx 的启动过程,不用每次重启 都全量拉取 一遍 nacos 的所有配置。

这里有一个 问题是 如果 nginx 停机过程中,nacos 配置更新了,下次 nginx 启动时候会使用上次缓存下来的 配置,nginx 启动之后辅助进程又会 订阅到 nacos 的最新配置,这大概 需要1两秒的时间。不过 nginx 的重启 是以 reload 为主,所以在这个场景下也没有这个问题。

@zhwaaaaaa zhwaaaaaa added the question Further information is requested label Dec 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants