1
proxytoworld 2024-10-25 14:09:29 +08:00
为什么不是后端监测哪个延迟低就用那个, 你这样配多个域名,还得多域名解析,检测
|
2
InDom 2024-10-25 14:12:40 +08:00
不要一直切换,发现失败或延迟高的时候再切换。
不经常换就 json ,存数据库静态回到文件,或者重写 json url 到程序也一样,这里根本不是问题。 |
3
lcy630409 2024-10-25 14:18:22 +08:00
第一次的时候测试+设置里 手动切换
|
4
cdring OP @proxytoworld 设计到海外用户,每个 api 域名套了不同厂商的 cdn 加速,所以每个国家的访问 api 域名延迟都不一样。直接前端请求域名延迟比较好吧。
|
7
DesnLee 2024-10-25 14:27:49 +08:00
每次请求都同时全部请求,拿第一个返回的结果,其他丢弃
|
10
spritecn 2024-10-25 14:40:14 +08:00
这个事前公司做过,通过自研壳浏览器做到的
|
11
wangyongbo 2024-10-25 14:40:20 +08:00
@cdring DNS 可以根据 用户的 IP 所属的地域 , 把域名解析到不同的 IP. 这个功能满足不了你们的需要吗?
|
12
jenson47 2024-10-25 14:46:57 +08:00
看具体需求,按道理 cdn 在某个地方应该是比较稳定的,或者说我们就认为心跳的响应时间在多少之内是 ok 的。
第一次或者当超过响应时间,就触发一次选择 api ,前端并发的去请求,就用第一个回来的,其他都废弃,或者保留前三,轮着来? |
13
lasuar 2024-10-25 14:50:39 +08:00
你后来 多数据库的一致性问题呢
|
14
liuliancao 2024-10-25 14:59:06 +08:00
这个原始需求是希望用户使用最快的 cdn 链接吗 这个肯定在前端做好点 不过最好是自己搞一个域名 做一下区域 dns 不要写进代码里面 这个是可以测试的 不同区域哪个 cdn 好
|
15
8355 2024-10-25 15:02:06 +08:00
这个 cdn 和云厂商都有相关的业务吧
比如说阿里云叫全球加速 |
16
yplam 2024-10-25 15:10:09 +08:00 via Android
如果这个 JSON 请求同时用作测速的话用静态文件好点,不然你后端还要保证在不同 QPS 下响应速度一致
|
22
8355 2024-10-25 15:19:25 +08:00
@cdring #20 除了自动加速以外主要是用二级域名指向不同的区域节点,比如欧洲/美国等等通常是为了某些业务的特殊性比如说欧洲的 GDPR 等等可以强制根据某些业务层面地址或者其他定位信息进行划分强制走某二级域名。
|
24
ounxnpz 2024-10-25 16:05:48 +08:00
如果是网页的话,可以用同一个域名,用 DNS Geolocation 之类的方法(具体取决于 DNS 服务商)实现不同区域解析到不同的 IP
|
25
sunchuo 2024-10-25 16:48:53 +08:00 哎。这个项目感觉不太对劲。🤦
|
26
2I0Mto2kjm0c0B9i 2024-10-25 17:04:04 +08:00
刚好昨天做了这个需求,在前面先 ping 所有节点,哪个快就存到本地,记录一个时间戳我们是 1 小时,下次对比时间戳再重新 ping
|
27
perfectlife 2024-10-25 17:07:34 +08:00 via Android
智能 dns 呢,同一个域名不同国家地区解析到不同的地址
|
28
kaf 2024-10-25 17:29:08 +08:00
后端开一个延迟检查接口,客户端定时访问所有域名的延迟时间,请求时读取延迟最小的。这样吗
|
29
SenLief 2024-10-25 17:37:53 +08:00
我觉得你在做微信,自己内置 dns ,不走系统 dns ,哈哈。
|
30
xiaochena 2024-10-25 17:44:54 +08:00
正常的逻辑应该是同一个 api 域名套用多个不同厂商的 cdn 加速吧。哪有加一个国家加一个 api 域名的道理。。。emmm
|
31
shakaraka PRO Promise.race 解君愁
|
32
wuhunyu 2024-10-25 18:36:18 +08:00
看描述,服务器应该是分别部署在不同的国家地域了。我比较好奇的是,如果前端根据延时来判断走哪个区域的服务,特殊情况下,一会儿访问这个国家的服务器,一会儿访问另一个国家的服务器,不同区域的数据是怎么同步的,跨地域的数据同步成本会比较,而且势必会存在数据不一致的问题,好奇你们的后端是怎么处理的。像是阿里云,他们的许多产品都是分地区的,比如上海,广州。而且很多时候不同区域的产品产生的数据他也不提供转区的服务。按我理解,区域 1 的前端最好就是访问区域的 1 的服务端,不然可能因为数据同步延迟导致一些奇怪的问题。如果是同一个区域的话,我又觉得没啥必要给同一个区域多个域名吧
|
35
cdring OP @iapplebear 需求和我这很接近
|
36
cdring OP @perfectlife 还用不上智能 dns ,因为就是想多个域名做高可用,域名挂了就切换
|
40
yinmin 364 天前 via iPhone
很简单啊,拿了 domain.json 后,对所有域名同时发起异步 api 请求,记录下第一个收到结果的,就用这个。
|
41
yinmin 364 天前 via iPhone
话说回来,大厂都是用智能 dns ,你们这个方案就是个小聪明
|
43
mytsing520 PRO 用 CDN+TCP 优化来处理,成本相较而言最低。
|