调用事务用于在目标节点上调用一个或多个集群命令。这类似于对集群中定义的命令进行的远程过程调用。
与写入事务类似,调用事务也支持定时事务和不定时事务。如需详细了解定时交易,请参阅定时操作和非定时操作部分。
意外调用事务
调用请求操作
方向:发起者 -> 目标
与读取请求操作和写入请求操作类似,在此 Action 中,发起者为目标提供以下各项:
- 调用请求:集群命令的路径列表以及命令的可选参数(名为命令字段)。
- 定时请求:一个标志,指示此操作是否属于定时调用事务。
- 抑制响应:一个标志,指示是否应抑制调用响应操作。
- 互动 ID:一个整数,用于将调用请求操作与调用响应操作相匹配。
调用响应操作
方向:目标 -> 发起者
目标收到调用请求操作后,它将通过包含以下内容的调用响应操作完成事务:
- 调用响应:发送的每个调用请求的命令响应或状态列表。
- 互动 ID:一个整数,用于将调用响应操作与调用请求操作相匹配。
非定时调用限制
调用请求操作可以是组播,但在这种情况下,必须设置禁止响应标志。其原因在于,否则网络可能被群组每位成员同时发出的响应所淹没。
如需启用此行为,“调用请求”列表中使用的路径可能包含群组,或者它们可以包含通配符,但只能在“端点”字段中使用。此外,如果 Action 为 Groupcast,则此事务将会终止,且无响应。
定时调用事务
与定时写入事务类似,定时调用事务也从定时请求操作开始。
定时请求操作
方向:发起者 -> 目标
发起者开始发送此 Action 的事务,其中包含:
- 超时:此事务可能保持打开状态的毫秒数。在此期间,发起者发送的下一个操作将被视为有效。
收到定时请求操作后,目标必须确认带有状态响应操作的定时请求操作。一旦发起程序收到状态响应操作(没有报告任何错误),就会发送调用请求操作。
调用请求操作
与前面描述的调用请求操作相同。
调用响应操作
与前面介绍的调用响应操作相同。
定时调用限制
所有调用命令都可以对定时互动进行调用。Timed Request Action、Invoke Request Action 和 Invoke Response Action 仅限 Unicast,因此无法用作 Timed Invoke 事务的 Groupcast。
“调用请求操作”支持使用包含组的路径以及通配符,但“调用响应操作”不支持使用通配符。