多路径传输控制协议(MPTCP)是标准TCP协议的扩展,它允许单个传输连接同时利用多个网络接口或路径。该技术能有效实现带宽聚合、故障切换,并显著提升网络连接的鲁棒性,适用于需要高可靠性的应用场景。测试数据表明,在1%网络丢包率的模拟环境中,采用MPTCP协议可使通信延迟降低约25%。
valkey对于MPTCP的支持包含几个方面:
- valkey-server支持MPTCP,通过mptcp yes配置即可,如果client端使用MPTCP连接,则二者之间使用MPTCP通信;否则通过协议协商,会自动回退到TCP连接。
- valkey-server的primary和replica之间,可以通过repl-mptcp yes配置打开MPTCP支持。如果多副本之间跨机房同步数据的场景下,使用MPTCP在理论上可以更好的处理数据链路抖动的场景。
- libvalkey支持MPTCP,创建context的时候,在选项中增加VALKEY_OPT_MPTCP选项即可。同理,如果valkey-server使用MPTCP连接,则二者之间使用MPTCP通信;否则通过协议协商,会自动回退到TCP连接。
- valkey-cli和valkey-benchmark也支持MPTCP,通过--mptcp参数即可使能MPTCP。
关于vakey支持MPTCP的背景参考前文:
Valkey支持MPTCP的进展和一点感想