为什么pub/sub系统的吞吐量和延迟成反比?

1bqhqjot  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(468)

当我读到一篇比较Kafka和拉比MQ的论文(不是免费的)时,我发现了以下几点(我的重点):
延迟。在任何传输体系结构中,分组/消息的延迟由其通过的串行管道(即,处理步骤的序列)确定。延迟只能通过在一系列体系结构(多个处理核心、磁盘或网络访问情况下的主dma引擎……)中并行处理同一数据包的资源上进行数据包传输来减少。它不会受到并行扩展资源的影响。
吞吐量。传输体系结构的吞吐量是每个时间单位在生产者和消费者之间可以传输的数据包(或者字节)的数量。与延迟相反,通过并行添加额外的资源可以轻松地提高吞吐量。
对于一个简单的管道,吞吐量和延迟是成反比的。
为什么会这样?这不是说“(延迟)不受并行扩展资源的影响”的相反说法吗?如果我添加更多的机器来增加吞吐量,那么延迟是如何减少的?

11dmarpk

11dmarpk1#

让我们研究一下高速公路的场景,为了便于讨论,我们将在华盛顿特区的地铁中使用i-66。这条高速公路每天早上都会经历高峰时间的延误,相当于大约40-60分钟的额外出行时间。这是因为道路的吞吐量受到限制。结果,一辆车的延迟时间增加了。
这背后的一般理论被称为利特尔定律。它表示客户(或本例中的司机)在系统(即高速公路)中花费的平均时间等于到达率除以系统中的客户总数。用代数表示,

其实际意义在于,随着汽车数量的增加 L ,例如高峰时间前后发生的情况,以及高速公路的恒定吞吐量 Lambda (维吉尼亚有点创意,想出了如何将路肩动态转换为车道,但效果不是很好),结果是增加了行驶一定距离所需的时间 W . 逆 W 是汽车的速度。
很明显,根据little定律,吞吐量 lambda 与延迟(时间)成反比, W 对于固定数量的汽车 L .

相关问题