1. etcd数据通道

在etcd 的实现中, 根据不同的用途,定义了各种不同的消息类型些不同的消息,最终都将通过 protocol buffer 格式进行编码。

大消息如传输 Snapshot 的数据 就比较大,甚至会超过1GB ,而小消息则如 Leader Follower 节点之间的心跳消息可能只有几十 KB。

etcd 在实现中,对这些消息采取了分类处理的方式,它抽象出了两种类型的消息传输通道,即 Stream类型通道和 Pipeline 类型通道。

Stream: 用于处理数据量较少的消息,例如心跳、日志追加消息等。点到点之间维护一个HTTP长连接。 Pipeline:用于处理数据量大的消息,如Snapshot。不维护长连接。 Snapshot这种数据量大的消息必须和心跳分开传,否则会阻塞心跳消息。

Pipeline也能用于传小消息前提是Stream不能用了。

Copyright © 温玉 2021 | 浙ICP备2020032454号 all right reserved,powered by Gitbook该文件修订时间: 2023-10-26 17:23:11

results matching ""

    No results matching ""