调用事务

调用事务用于在目标节点上调用一个或多个集群命令。这类似于对集群中定义的命令进行的远程过程调用。

与写入事务类似,调用事务也支持定时事务和不定时事务。如需详细了解定时交易,请参阅定时操作和非定时操作部分。

意外调用事务

未计时的调用事务的操作序列
图 1:非超时调用事务

调用请求操作

方向:发起者 -> 目标

与读取请求操作和写入请求操作类似,在此 Action 中,发起者为目标提供以下各项:

  • 调用请求:集群命令的路径列表以及命令的可选参数(名为命令字段)。
  • 定时请求:一个标志,指示此操作是否属于定时调用事务。
  • 抑制响应:一个标志,指示是否应抑制调用响应操作。
  • 互动 ID:一个整数,用于将调用请求操作与调用响应操作相匹配。

调用响应操作

方向:目标 -> 发起者

目标收到调用请求操作后,它将通过包含以下内容的调用响应操作完成事务:

  • 调用响应:发送的每个调用请求的命令响应或状态列表。
  • 互动 ID:一个整数,用于将调用响应操作与调用请求操作相匹配。

非定时调用限制

调用请求操作可以是组播,但在这种情况下,必须设置禁止响应标志。其原因在于,否则网络可能被群组每位成员同时发出的响应所淹没。

如需启用此行为,“调用请求”列表中使用的路径可能包含群组,或者它们可以包含通配符,但只能在“端点”字段中使用。此外,如果 Action 为 Groupcast,则此事务将会终止,且无响应。

定时调用事务

与定时写入事务类似,定时调用事务也从定时请求操作开始。

定时调用事务的操作序列
图 2:定时调用事务

定时请求操作

方向:发起者 -> 目标

发起者开始发送此 Action 的事务,其中包含:

  • 超时:此事务可能保持打开状态的毫秒数。在此期间,发起者发送的下一个操作将被视为有效。

收到定时请求操作后,目标必须确认带有状态响应操作的定时请求操作。一旦发起程序收到状态响应操作(没有报告任何错误),就会发送调用请求操作。

调用请求操作

与前面描述的调用请求操作相同。

调用响应操作

与前面介绍的调用响应操作相同。

定时调用限制

所有调用命令都可以对定时互动进行调用。Timed Request Action、Invoke Request Action 和 Invoke Response Action 仅限 Unicast,因此无法用作 Timed Invoke 事务的 Groupcast。

“调用请求操作”支持使用包含组的路径以及通配符,但“调用响应操作”不支持使用通配符。