Skip to content

代码部署

使用 Ignite 时,可能需要将业务代码部署到服务端节点。例如分布式计算中使用的代码。

在 Ignite 3 中,当将业务代码部署到集群时,它会保存为一个部署单元。部署单元具有唯一的 ID 并且不可变。当需要更新代码版本时,需要部署一个新单元。

与部署单元的所有交互都使用 REST API 执行。REST 端点可用于在节点上或整个集群中部署单元、卸载单元以及检查部署单元状态。

1.部署新单元

要创建新的部署单元,需要向/management/v1/deployment/units/{unitId}/{unitVersion}端点发送请求。可以将代码部署到一个节点,并且会根据需要传播到集群,但通常最好在部署业务代码时提供所有节点的列表。

以下是端点的参数列表:

参数类型描述
unitId路径必须,唯一单元ID,如果不存在同名的部署单元,则会创建,否则会创建一个新的版本。
unitVersion路径必须,部署单元的唯一版本。如果已存在相同ID和版本的部署单元,则返回 HTTP 409冲突响应。
deployMode查询定义单元将部署到的节点数。如果设置为MAJORITY,则单元将部署到足够多的节点,以形成集群管理组多数。如果设置为ALL,则单元将部署到所有节点。不能与initialNodes参数一起使用。
initialNodes查询要部署单元的节点名列表,不能与deployMode参数一起使用。

2.获取单元信息

部署单元信息可通过多个端点获得。

2.1.获取特定单元信息

/management/v1/deployment/node/units/{unitId}/management/v1/deployment/cluster/units/{unitId}端点的请求分别提供有关节点或集群的部署单元的信息。

可以通过仅查找特定版本或状态来进一步缩小搜索范围。

参数类型描述
unitId路径必须,部署单元的唯一单元 ID。
version查询部署单元的唯一版本。如果未指定,将返回部署单元的所有版本。
statuses查询要返回的部署单元的状态。可能的值:UPLOADING:单元正在部署到集群;DEPLOYED:单元已部署到集群,并且可用;OBSOLETE:已收到删除单元的命令,但是仍有作业正在使用该单元;REMOVING:单元正在被删除。如果未指定,将返回所有状态的部署单元。

2.2.获取所有单元的信息

/management/v1/deployment/node/units/management/v1/deployment/cluster/units端点的请求分别提供有关节点或集群的所有部署单元的信息。也可以选择仅检索特定状态的部署单元。

参数类型描述
statuses查询要返回的部署单元的状态。可能的值:UPLOADING:单元正在部署到集群;DEPLOYED:单元已部署到集群,并且可用;OBSOLETE:已收到删除单元的命令,但是仍有作业正在使用该单元;REMOVING:单元正在被删除。如果未指定,将返回所有状态的部署单元。

3.卸载单元

当不再需要某个部署单元版本时,可以向/management/v1/deployment/units/{unitId}/{unitVersion}端点发送请求。当集群收到请求时,它将删除所有节点上的指定部署单元版本。如果该单元正被某个作业使用,则它将移动到OBSOLETE状态,并在不再需要时将其删除。

参数类型描述
unitId路径必须,待删除的唯一单元ID。
unitVersion路径必须,待删除的部署单元的唯一版本。

18624049226