公司现在的项目基本开发完成了,主要是让不同国家的用户查看一些设备的文件,图片,修改一些参数等,功能还比较简单 现在碰到的问题是国外用户访问太慢了,准备把文件放到云存储的地方, 但是像 Api 这些请求太慢的需要怎么解决,难道在国外也放几台服务器吗,这样数据库要怎么同步?
静态文件可以靠 CDN,动态数据的话...我也想知道
我听说过很多公司的做法,把用户按区域划分,区域有区域独立的数据库,某个用户的活跃数据总是保存在哪个地区的本地服务器的,同步会有,但不是实时的。例如用户的账单、通知、个人文件之类的,这些只有他会看的,只需要放到他的附件的服务器。
我们的设备会全球跑,所以全球的用户都要查看这个设备的一些信息,文档之类的 我现在想的是国外的数据库做只读,国内的用来更新操作
可以试一试用 nginx 的反向代理方案:在国外找到一个服务器(需要保证该服务器与国内的服务器之间的访问速度很快),然后在其上搭建 Nginx 反向代理,通过该服务器将国外用户的请求转发到国内服务器上,并且可以在国外服务器上做缓存。
#2 楼 @zhujg 如果国外的用户没有更新操作,用你的方案是很好很方便的,这种主从架构很适合一写多读或者写少读多的场景的。
#3 楼 @chucai 你这个方案很方便,对项目代码也没有侵入,可是关键是物理上的距离还是无法跨越,一些线路还是会有明显的延迟的,比如美国到中国,加上 VPC + 专线,也只能是保障链路质量稳定而已。
#1 楼 @huacnlee 没有靠谱的方法,不靠谱的方向有 3 个。 1、找蓝汛等,他们能租给一条线,能全球动态内容加速。价格在 6k/m 以上吧。 2、可能可以使用网易云信等的服务。 3、找云梯,他们可能也可以办得到。
我也在找类似的方案,发现这个,有人用过吗? https://github.com/alibaba/otter
#7 楼 @peter otter 是用于双向同步吧,双向同步还是有很多坑的,另外据用过的同事介绍,otter 也不够稳定。