NDB 集群内部结构  /  NDB 通信协议  /  NDB 协议概述

3.1 NDB 协议概述

NDB 集群数据节点和 API 节点之间通过相互传递消息进行通信。从一个节点发送消息到另一个节点接收消息的过程称为信号NDB 协议是管理这些消息格式以及传递方式的规则集合。

一条 NDB 消息通常是请求响应。请求表示 API 节点希望执行涉及集群数据的操作(例如检索、插入、更新或删除)或事务(提交、回滚或获取或释放事务记录)。请求在必要时会附带键或索引信息。数据节点对此请求发送的响应表示请求是否成功,并在适当时附带一个或多个数据消息。

请求类型。 请求以 REQ 消息表示。请求可以分为处理数据和处理事务两类

  • 数据请求。 数据请求操作主要有三种类型

    1. 主键查找操作 通过交换 TCKEY 消息来执行。

    2. 唯一键查找操作 通过交换 TCINDX 消息来执行。

    3. 表或索引扫描操作 通过交换 SCANTAB 消息来执行。

    数据请求消息通常会附带 KEYINFO 消息、ATTRINFO 消息或两种消息。

  • 事务请求。 这些可以分为两类

    1. 提交和回滚,分别由 TC_COMMITTCROLLBACK 请求消息表示。

    2. 事务记录请求,包括事务记录获取和释放,分别使用 TCSEIZETCRELEASE 请求消息处理。

响应类型。 响应表示对其回复的请求是成功还是失败

  • 表示成功的响应以 CONF(确认)消息表示,并且通常附带数据,这些数据打包为一个或多个 TRANSID_AI 消息。

  • 表示失败的响应以 REF(拒绝)消息表示。

有关这些消息类型及其之间关系的更多信息,请参见第 3.2 节,“NDB 协议消息”