看到有人说 curl, chrome 在 dns 查询中返回多条记录,如果有一个 ip dial 失败了,会自动 dial 下一个 ip, 那么国内其他应用呢?
我看到的实际情况是很多 socks 代理都只 dial 一个 ip 就过去了。
1
tool2dx 14 小时 49 分钟前
一般来说不用管,DNS 多条记录是为了分流 CDN 压力的。真的 IP 不通,不是服务器下线就是出硬件故障,会报警修的。
当然,我在安卓平台开发,发现某些手机 DNS 解析很慢,特别是大批量的时候。界面会卡个几秒,用户体验很差。有 backup 优选方案,会固定一个优质 IP ,内置到 APP 里。 |
2
AoEiuV020JP 14 小时 47 分钟前
这种东西是应用层该管的吗,
|
3
mxalbert1996 14 小时 16 分钟前 via Android
这个取决于你用的(系统或者第三方) HTTP 请求库(除非你自己重写底层请求库)。就移动端来说,Android ( Java )的 OkHttp 和 iOS 的系统标准库都是支持的( Java 的标准库是不支持的)。
|
4
jeesk OP @mxalbert1996 okhttp 能够自动切换 ip ? 貌似不行吧。
|
5
jeesk OP @AoEiuV020JP chrome 和 curl 不是应用层了?
|
6
jeesk OP @mxalbert1996 看了一下 okhttp 目前确实支持重试多个 ip.
|
7
jeesk OP @mxalbert1996 刚才看了一下源码,okhttp 肯定是不支持自动切换失败 ip 的, 差点被 chatgpt 误导了。
|
8
AoEiuV020JP 12 小时 59 分钟前
@jeesk #5 我指的是 app ,
curl 有自家的 libcurl ,这种东西感觉归 libcurl 管比较合适, chrome 这个就太庞大了, 上下全打通,啥都得管, 普通 app 开发不应该管这些, |
9
mxalbert1996 12 小时 17 分钟前 via Android
https://square.github.io/okhttp/5.x/okhttp/okhttp3/-ok-http-client/-builder/retry-on-connection-failure.html?query=fun%20retryOnConnectionFailure(retryOnConnectionFailure:%20Boolean):%20OkHttpClient.Builder
> By default, this client silently recovers from the following problems: > Unreachable IP addresses. If the URL's host has multiple IP addresses, failure to reach any individual IP address doesn't fail the overall request. This can increase availability of multi-homed services. |