代码部署
使用 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