知识卡片

地域与区域的划分决定了集群内部流量的物理边界

普通读书笔记卡

内容

微服务基础设施里常见的Region/Zone参数(源自AWS)不只是命名习惯,而是 真实的物理边界划分,直接约束了服务发现和负载均衡的作用范围。Region (地域,如华北、华南)是粗粒度的地理范围划分,用来缩短用户和服务器的 物理距离以提速;关键约束是不同地域之间没有内网连接,所有跨地域流量都 只能走公众互联网——这意味着一旦微服务调用跨越了地域,性质上就和调用 外部第三方服务没有区别,所以集群内部流量默认不会、服务发现和负载均衡 默认也不支持跨地域。Zone(区域,即可用区域)是同一地域内电力和网络 互相独立的物理区域(如同属华东的上海、杭州、苏州机房),可用区域之间 有内网连接、不占公网带宽,是微服务集群内部流量能触及的最大范围——是 否要把系统分散部署到多个可用区域,取决于你要的是高可用(追求跨区域 容灾/双活,能扛住单个地区电力或骨干网中断)还是低延迟(追求所有服务 部署在同一区域内,专线容量终究不如机房内交换机,物理距离和跳点数都 会拖慢延迟)。部分微服务框架还支持Sub-zone等更细粒度的子区域参数用于 进一步优化就近访问,即使是没有用云计算的中小型系统,也完全可以借用 Region/Zone的语义来自定义流量优化策略(如配合Kubernetes标签选择器优先 访问同节点的服务)。

参考来源

- 位置:《凤凰架构:构建可靠的大型分布式系统》第7章"从类库到服务" 7.3.3节"地域与区域"(源文件:_epub-src对应OEBPS/Text/chapter95.xhtml) - 结论依据:原文定义Region地域间无内网连接、跨地域流量等同调用外部 服务,Zone可用区域间有内网连接、是集群内流量能触及的最大范围,并说明 高可用与低延迟这两种诉求分别对应多区域部署与单区域部署的取舍,直接 支撑本卡片结论。 - 原始内容:不同地域之间是没有内网连接的,所有流量都只能通过公众互联网 相连,如果微服务的流量跨越了地域,实际就跟调用外部服务商提供的互联网 服务没有任何差别了……区域是微服务集群内流量能够触及的最大范围。