GoForum › 🌐 V2EX

今天周二,人多,有没架构大佬帮忙看看,讨论讨论,有兴趣的也可以一起参与

wKong753900 · 2026-09-08 09:33 · 0 次点赞 · 8 条回复

前提:
公司是全球性的硬件公司,类似影石,做户外运动相机,硬件方面做了很多年一直都是卖硬件(我们 toB ,不 toC),然后用合作厂商开发的 APP 给用户用,现在今年自己开发软件,我们在国内已经有一套架构(Go+k8s 集群)了,所以此次我想请教的是全球化的架构应该怎么搭。

目前考虑部的点:北美,东南亚(新加坡),欧洲(法国),迪拜,非洲(这个地方客户比较多)

问题:
1 、简单的做法,就是一个点位一套,但这样就没法数据同步,在北美注册的用户,在非洲得重新注册。这个体验不好,想还是实现全球化
2 、用 GeoDNS ,用统一域名设置多个 ip ,如果设备和 APP ,在某些边缘区域,ip 是不是会经常飘来飘去的
3 、因为是相机,所以很多音视频文件,全球化的话,音视频文件同步,一个是同步占用带宽,一个是占用空间,这两个量大的话,都难搞,怎么处理
4 、这几年硬件成本上升,所以公司资金不是很雄厚,有没有高端(用大厂),中端(性价比),低端(当地小厂)的架构推荐?

暂时想到的是这些,有继续想到再补充

8 条回复
wKong753900 · 2026-09-08 09:38
#1

软件架构上主要有自建的流媒体服务,P2P 使用的 turn 服务,Go 微服务后端加各种中间件集群(Minio 集群,Pgsql 集群,Redis 集群,Mqtt 集群,RocketMQ 集群等等)

evill · 2026-09-08 09:38
#2

做过类似的(北爱尔兰、美西、新加坡) 以新加坡做用户服务主服务,强一致性注册;同步用户回对应区域的服务器,后续登录等对应区域自己完成。 其他所有服务(支付除外)每个区域完整部署一套。

用户夸区域时,当前服务接受请求,gateway 确认区域 走亚马逊内网 proxy 到用户注册区域。

wKong753900 · 2026-09-08 09:43
#3

@evill 谢谢哈,请问用户数据同步是用什么方案?然后“用户夸区域时,当前服务接受请求”,这个需不需要一个统一的访问入口?还是让 GeoDNS 来做?

xwayway · 2026-09-08 09:43
#4

分主数据,业务数据,多媒体数据。主数据全球同步,业务数据和多媒体数据只存一个 region ,通过边缘网关按 region 转发业务请求,多媒体上 cdn

sentinelK · 2026-09-08 09:43
#5

这个要看你业务的轻重而定。就是你需要再全球不同节点同步多大量的数据。如果只是类似会员,或者设备注册信息,那就完全可以选择异步慢慢同步。

毕竟你的用户不可能在 A 地注册后,瞬移到 B 地。所以不存在热切节点的可能性。 然后容错措施可以优先同步一个最近信息节点 ID (类似于最新时间戳),实在没同步过来就主动发起拉取。

不过从行业做法来讲,跨地域的注册信息其实价值没那么大。甚至会因为政策原因,反过来限制跨地域账号。

wKong753900 · 2026-09-08 09:48
#6

@xwayway 谢谢哈,”分主数据,业务数据,多媒体数据”,这样的话,岂不是得拆得很细,然后把服务分开?然后再请教下如果多媒体数据,很多都是看回放的话,用户跨区了,是不是还是得同步?有想过边缘网关做缓存,就是遇到跨区要怎么同步

wKong753900 · 2026-09-08 09:48
#7

@sentinelK 谢谢哈,我也在想这个跨区其实是不是就很少一部分情况,大部分还是都会集中在一个点的,需不需要为了解决这么少部分,而考虑那么多呢

evill · 2026-09-08 09:53
#8

@wKong753900 这个是 10 年前做的了,具体现在是什么方案不清楚了 用户数据同步是很粗暴的方式:注册时新加坡服直接 call 对应区域写入接口 没有统一访问接口当时是 APP ,服务器会下发所有域名好像 app 根据延迟选择的,还有一些兜底的规则

添加回复
你还需要 登录 后发表回复

登录后可发帖和回复

登录 注册
主题信息
作者: wKong753900
发布: 2026-09-08
点赞: 0
回复: 0