开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 29 天,点击查看活动详情
生命不息,学习不止
题外话
又到周四了,v我50没意见吧,不然让你们见识见识什么叫做疯狂
废话不多说,上货
clickhouse节点通讯原理
昨天讲了clickhouse分布式中数据分片的原理,今天就来说一说分布式中节点的通讯机制
ClickHouse节点之间的通讯使用TCP/IP协议。节点之间通过网络互相通讯,进行数据交换和协调处理任务。节点间通讯主要包括以下三种类型:
-
节点间查询通讯:当一个查询涉及到多个节点时,每个节点会分别执行查询,然后通过网络将结果传回到客户端进行合并。这种通讯需要在节点之间传输查询请求和结果数据。
-
节点间同步通讯:在节点加入或者离开集群、数据块分配和移动时,需要进行节点间数据的同步。这种通讯需要在节点之间传输数据块的元数据和实际数据。
-
节点间心跳通讯:在集群中需要对节点的状态进行监控,防止因为节点宕机导致数据丢失。这种通讯是指定时间间隔内由节点向其他节点发送状态信息,检查节点是否正常运行。
节点间通讯的过程中,ClickHouse采用异步非阻塞的通讯方式,避免网络I/O的阻塞,提高系统的吞吐量和响应速度。同时,ClickHouse还实现了自适应流控制算法,通过控制发送速率来保证节点间通讯的稳定性和可靠性。
自适应流控算法是ClickHouse中用于调节数据发送速率的一种算法,它可以根据网络拥塞程度动态地调整数据发送速率,从而避免网络拥塞和数据包丢失。
该算法的基本原理是,在数据发送过程中,每个节点都会对网络的拥塞程度进行监测,并根据监测结果动态地调整数据发送速率。具体来说,当节点发送数据时,它会测量数据发送速率和接收方的响应时间,然后根据这些数据计算出一个“发送窗口”,即允许发送的数据包数量。如果数据包在网络中传输过程中出现了拥塞,则发送方会立即调整发送窗口的大小,从而减少数据包的发送速率,以避免数据包丢失和网络拥塞。
你以为结束了
下一篇我们继续挖坑
大家看完发现有什么错误,写在下面吧!跟我黑虎阿福比划比划!