我最近的项目之一使我更加参与了
Aeron项目。 如果您不了解Aeron,请前往 Github网站并进行检查。 它的核心是可靠的消息传递系统,该系统可以在UDP,组播UDP和IPC上运行。 它还包含用于记录和重放的归档功能,以及(仍在积极开发中)用于集群的Raft协议的实现。 我是否提到过它也很快 。
在过去的几周中,我一直沉迷于Aeron进行流量控制的各种策略中。 具体修改现有的流控制策略,并在每个通道的基础上添加更灵活的配置。 在开始之前,先介绍一下背景知识会很有用。
什么是流量控制?
在分布式系统中,流量控制的目的是限制发送方的速率,以免超出相关方的接收方。 UDP没有任何形式的流控制,因此很容易创建发送方,使其超出接收方的速度,从而导致消息丢失。 有多种不同形式的流量控制 ,但我将重点介绍
TCP和Aeron使用的