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

first-ping和ip-alias一起使用的问题 #1681

Open
qwerttvv opened this issue Feb 23, 2024 · 9 comments
Open

first-ping和ip-alias一起使用的问题 #1681

qwerttvv opened this issue Feb 23, 2024 · 9 comments

Comments

@qwerttvv
Copy link

在应答模式为first-ping的时候,如果设置ip-alias,那第一次返回的仍旧是上游下发的数据,不是自己ip-alias设置的

这逻辑不大对啊,我已经指定了,为啥还会返回上游地址哪怕1次呢

我只试了指定ip的别名,指定域名的没试,不知道逻辑是否也这样

@pymumu

@lalasou
Copy link

lalasou commented Feb 23, 2024

确实是这样,我第一次用以为没生效呢

@pymumu
Copy link
Owner

pymumu commented Feb 23, 2024

是不是缓存文件里面的数据,查询一次后还有没有?

@lalasou
Copy link

lalasou commented Feb 23, 2024

是不是缓存文件里面的数据,查询一次后还有没有?

貌似得过了缓存时间

我的是原来的cache没删

@PikuZheng
Copy link
Contributor

没能重现,我的cache里有也没这样的问题

@lalasou
Copy link

lalasou commented Feb 23, 2024

没能重现,我的cache里有也没这样的问题

你把配置文件 ip-alias ip改了 reload
应该会等缓存到期才换ip

@lalasou
Copy link

lalasou commented Feb 23, 2024

顺便问下 reload 和restart 什么区别

@PikuZheng
Copy link
Contributor

所以说ip-alias的目标ip变了 不能立即生效?楼主的意思好像是,已有缓存的域名在新配置ip-alias后还是会获取到原来的ip

@lalasou
Copy link

lalasou commented Feb 23, 2024

所以说ip-alias的目标ip变了 不能立即生效?楼主的意思好像是,已有缓存的域名在新配置ip-alias后还是会获取到原来的ip

他说第一次 没有返回设置的ip
第一次还是执行原 Fast ping

后面会正常返回设置ip

@qwerttvv
Copy link
Author

重启服务后没法立即生效,可能是缓存吧,没有过期的那种缓存,反正行为表现是设置ip alias后重启服务,第一次查询还是原来的缓存,再查询就变指定的了

流程比如是first-ping下查询域名A——过10秒再查询域名A——得到没那么快过期的缓存——设置该域名对应ip的ip alias——重启服务——再查询域名A——此时还是原来缓存内容,不是指定的ip——再过几秒再查询域名A,就变指定的ip了

中午那会测试的哪个域名我记不住了,缓存应该没有那么快过期吧

这是ip alias设置肯定比缓存ping快的结果,但是如果要是特殊原因就要指定的ip,比如缓存的ping快,但是下载慢,那指定的就比之前缓存的在ping上速度慢了,重启服务后由于缓存持久化,而且缓存的ping快,那查询到的一定还是缓存的ping快的ip吧,得等缓存里这个数据过期重查了吧

我估计指定域名规则是不是也是这样呀,能不能就说指定域名或者ip的规则之后,相关条目缓存先丢弃,然后测速从设定的内容里获取再测啊,或者有啥别的办法

不过目前影响不大,反正设置ip alias的都是ping比原先上游下发并且缓存的快,早晚会顶掉缓存里的,而且就算特殊场景要ping慢的,缓存过期也会顶掉旧的缓存内容吧……

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants