定义
Multi-Region(多区域)指 ICMP 在多个地理区域部署数据中心或云节点,形成 Geo-Distributed 地理分布式架构。Multi-Region 支持 Edge Location 就近接入、Data Residency 数据属地、Region Failover 区域容灾,是平台面向全球客户的基础架构能力。
典型区域
ICMP 典型部署区域包括:亚太——新加坡、香港、东京等,服务亚太客户;欧洲——法兰克福、阿姆斯特丹等,满足 GDPR 与 EU Data Residency;北美——弗吉尼亚、俄勒冈等,服务美洲客户。各区域可独立部署完整或部分服务,通过 Region Failover 实现跨区容灾。
与合规的关系
Multi-Region 是满足 Data Residency、Data Localization 的基础:欧盟客户数据可存储于 EU 区域;俄罗斯、中国等要求数据境内存储的区域需有本地节点。平台需按客户或业务配置数据存储区域,避免违规跨境传输。
在 ICMP 中的实践
达希物联 ICMP 采用 Multi-Region 部署,结合 Geo-Distributed、Edge Location、CDN;支持 Region Failover 容灾;满足 Data Residency 与 GDPR 合规;保障全球客户低延迟、高可用访问。
节点位置与数据落点
多区域部署的技术含义,是把连接管理的入口、处理或存储分到多个地理节点,使设备或用户能够就近访问,并使某些数据留在约定的区域内。入口靠近用户,不等于全部数据都写在入口所在的城市。必须分别规定:鉴权请求可以到哪个节点,话单存在哪里,账单在哪里生成,日志能否被另一个区域的人员查看。区域之间的复制若存在,要写明哪一边是权威、延迟多久能够读到,以及区域不可用时读副本还是拒绝写入。
启用多区域的条件,是已经知道客户或法规要求哪些数据不能离开指定地区,并且应用能按租户或业务选择落点。只为了页面打开更快而把所有数据复制到每个节点,可能反而违反数据落点要求。发布也不能假设各区域版本永远相同。一个区域先升级计费规则,另一个区域仍按旧规则写账单,跨区汇总就会冲突。区域切换应有运行手册,并在审计记录里留下切换时间和影响的租户。服务如何拆分、哪个服务拥有哪类数据,要与微服务架构里的所有权一致,避免每个区域各写一套状态。
接入区域和记账区域不一致
容易出错的是把边缘接入点当成数据已经本地化。设备从就近节点接入,话单仍可能被送到中心节点计价。若合同要求用量数据留在某一地区,这种路径就不合格,即使页面访问很快。另一个错误是故障时自动把写入切到其他区域,却没有告知客户数据落点已经改变。容灾和数据属地可能互相约束,自动切换前要知道哪些租户允许离开原区域。
时钟和主键也会出问题。两个区域各自生成卡事件序号,合并后无法判断先后;不使用统一的事件标识,同一条话单会在两边各记一次。多区域方案应公开每类数据的权威区域、复制方向和故障时的取舍,并在切换演练里检查账单是否仍只来自一个权威来源。
区域维护要提前宣布写入口会暂时拒绝还是转到另一权威区域。若转到另一区域,必须先确认受影响租户允许数据离开原区域,并把切换起止时间写进审计。维护结束后,要抽查切换期间产生的话单是否只在一个区域计价,有没有因为两边都短暂可写而被记成两笔。副本追上权威之后,再恢复只读查询,避免读到维护前的旧状态。
租户应固定权威区域。同一客户的卡状态、话单和账单不要在多个区域各自成为权威,否则同一张卡会有两套余额。就近接入可以发生在别的节点,但写操作要转发到权威区域,或在权威区域不可用时按事先约定拒绝写入。读副本只能用于允许延迟的查询,并且页面要能提示数据时间。把副本上的旧余额展示成当前可用量,客户会在已经用尽之后仍看到剩余。
区域之间的时钟和标识要能排序。事件若只靠各区域本地生成的序号,合并后无法判断先后。跨区传递时带上权威区域赋予的标识和发生时间,重复到达的事件才能被认出来。维护窗口内如果两个区域都短暂接受写入,结束后要按标识对账,删除或调整重复计价的记录,并留下是哪一次维护造成的。
人员访问也算数据离开区域的一种方式。数据库虽然放在约定地区,另一地区的账号若能直接查询明细,落点要求并没有实现。访问控制应按租户的权威区域限制谁可以导出,导出动作记入审计。容灾演练要包括“不允许离开原区域”的租户,确认他们的写入在切换时被拒绝,而不是被悄悄送到备用区域。