rccoder
2023-09-12 21:55:19 +08:00
不管是什么云,解决的思路大体是一样的,关于这个问题,首先要分为登录与未登录场景
未登录场景(以及登录场景):
一般都是利用 GEODNS ,在 DNS 层面,让不同的国家在请求的时候,解析到不同的 IP ,以便达到不同区域访问可以访问到不同服务的能力
一般来说,商业版 DNS 都有这个功能。国内像 DNSPod 甚至免费提供这种功能;当然一些 CDN ,也支持按照区域回源,也能实现类似效果
登录场景下:
在能拿到用户态的情况下,是可以根据户口等做更加精确的判断的(相比于 IP 判断,要精确非常多)。并且一些业务,涉及多地存储问题,对用户访问到什么区域是极度敏感的,所以大多数在登录场景下,需要根据用户态做纠偏,一般会做到 LB 层面(或者到业务逻辑层,具体看情况),在这里会再次做流量转发(纠偏),以便使即使上层解析的东西不对,能在这里再次转发正确
当然如果在 APP 端内,这块可以控制的更加精确或者前置,做到 APP 的网络请求层面,以便减轻服务端压力,以及减少转发