简介
Synchronized 是一个分布式锁。对并发处理的请求进行加锁保护,可应用在对资源互斥的访问场景中。目前加锁保护支持流级别加锁。在不同的项目中,即使“加锁对象”名称相同,也是不同的两把锁,但在同一个项目中,如果“加锁对象”名称相同,则只定义了一把锁。
操作配置
参数配置
参数 | 数据类型 | 描述 | 是否必填 | 默认值 |
加锁对象 | string | 声明一个锁对象。 | 是 | 无 |
最大锁持有时间 | int | 锁最大占有时间,目前最大支持3600秒。 | 是 | 3600 |
最大锁等待时间 | int | 最长等待时间,目前最长等待时间为3600秒。 | 是 | 3600 |
配置界面


输入到子流中的 message
message 属性 | 值 |
payload | 继承 Synchronized 上一个组件的 payload。 |
error | 空。 |
attribute | 继承 Synchronized 上一个组件的 attribute 信息。 |
variable | 继承 Synchronized 上一个组件的 variable 信息。 |
输出
组件输出的 message 信息如下:
message 属性 | 值 |
payload | 继承子流输出的 payload。 |
error | 执行成功后,error 为空;执行失败后,error 为 dict 类型,包含“Code”和“Description”字段:“Code”字段表示错误类型,“Description”字段表示错误具体信息。 |
attribute | 继承子流输出的 attribute 信息。 |
variable | 继承子流输出的 variable 信息。 |
案例
在资源互斥的场景中,可以使用 Synchronzied 对资源进行加锁,例如:库存扣减操作,对库存查询和库存扣减加锁,防止超卖。
1. 添加 Synchronzied 组件,声明锁对象 stock。




2. 在 Synchronized 中配置子流,添加 Database 组件,查询库存。


3. 库存足够时,进行扣减操作。

