first fallacy of distributed computing假设网络是可靠的。
考虑两种情况:
场景1:us-east-1(同一个AZ)中的TCP通信。
场景2:我们之间的东部和西部之间的TCP通信。
在两种情况下,服务器A和B都通过TCP等可靠协议进行通信。在这两种情况下都可以进行网络分区。方案1可能是由数据中心的网络问题引起的。场景2可以以与场景1相同的方式体验网络分区,也可以通过我们在东部和西部之间传输的任何类型的网络问题来体验网络分区
考虑失败,因为服务器A无法在某个有限的时间限制内收到B的响应,比如1分钟。我的问题是:场景2中的请求是否更可能通过网络分区或其他网络问题失败 - 而不是场景1?假设请求在场景1 中经常比在场景2中成功是一个错误的假设吗?
答案 0 :(得分:1)
网络分区的概率( P )与网络中每个组件的故障成比例(为简单起见,不考虑同时发生的故障)
正如你所提到的,在第一种情况下 P_partition1~P_failure_your_datacenter ,在第二种情况下 P_partition2~P_failure_your_datacenter + P_failure_in_transit
鉴于 P_failure_in_transit> 0 似乎 P_partition_2> P_partition_1
所以我说你已经回答了自己的问题。 一个值得回答的相关问题是它有多大可能?它更复杂,只能回答分析现实世界的统计数据 - 您自己的或来自您的托管服务提供商