浪潮云溪分布式数据库协议代码解析(1)
云溪数据库支持PostgreSQL protocol 3.0,用于客户端与服务端之间的信息通信,应用于连接认证及数据请求阶段。 PostgreSQL协议的消息通用格式如下图所示,包含1字节的消息类型,4字节的长度(不包括类型的长度),以及消息的内容。由于历史原因,startup消息不包含类型。 Part 1 -连接认证阶段 1.用户使用客户端,通过云溪数据库sql命令,尝试连接服务端时,客户端会获取连接命令的参数,生成URL,具体格式如下 postgres://<username>:<password>@<host>:<port>/<database>?<parameters> 其中,包含了当前用户的用户名和密码,节点的IP地址和端口,连接的数据库库名,以及额外的连接参数。 2.客户端会根据URL,建立与服务端之间的连接,发送一个startup消息。 func(c *Connector) open(ctx context.Context)(cn *conn, err error){ ... cn.s...




