分布式锁 API 参考

关于分布式锁 API 的详细文档

通过此端点,您可以通过提供锁所有者的名称和要锁定的资源 ID 来获取锁。

HTTP 请求

POST http://localhost:<daprPort>/v1.0-alpha1/lock/<storename>

URL 参数

参数描述
daprPortDapr 端口
storenamemetadata.name 字段的组件文件。请参阅组件模式

查询参数

HTTP 响应代码

代码描述
200请求成功
204空响应
400请求格式错误
500请求失败

HTTP 请求体

锁端点需要接收以下 JSON 负载:

{
    "resourceId": "",
    "lockOwner": "",
    "expiryInSeconds": 0
}
字段描述
resourceId要锁定的资源 ID。可以是任何值
lockOwner锁所有者的名称。每次请求都应设置为唯一值
expiryInSeconds锁定在过期前保持的时间(秒)

HTTP 响应体

锁端点会返回以下负载:

{
    "success": true
}

示例

curl -X POST http://localhost:3500/v1.0-alpha/lock/redisStore \
  -H "Content-Type: application/json" \
  -d '{
        "resourceId": "lock1",
        "lockOwner": "vader",
        "expiryInSeconds": 60
      }'

{
    "success": "true"
}

解锁

通过此端点,您可以根据锁所有者和资源 ID 解锁现有锁。

HTTP 请求

POST http://localhost:<daprPort>/v1.0-alpha1/unlock/<storename>

URL 参数

参数描述
daprPortDapr 端口
storenamemetadata.name 字段的组件文件。请参阅组件模式

查询参数

HTTP 响应代码

代码描述
200请求成功
204空响应
400请求格式错误
500请求失败

HTTP 请求体

解锁端点需要接收以下 JSON 负载:

{
    "resourceId": "",
    "lockOwner": ""
}

HTTP 响应体

解锁端点会返回以下负载:

{
    "status": 0
}

status 字段包含以下响应代码:

代码描述
0成功
1锁未找到
2锁属于其他所有者
3内部错误

示例

curl -X POST http://localhost:3500/v1.0-alpha/unlock/redisStore \
  -H "Content-Type: application/json" \
  -d '{
        "resourceId": "lock1",
        "lockOwner": "vader"
      }'

{
    "status": 0
}