Orleans 2.0 官方文档 —— 8.3 实现细节 -> 消息传递保证

消息传递保证

默认情况下,Orleans消息传递保证最多一次也可以选择,如果配置为在超时时重试,则Orleans消息传递保证最少一次。

更多细节:

  • Orleans的每条消息都有自动超时(可以配置精确的超时时间)。如果答复没有按时到达,则返回的Task会中断,并带有超时异常。

  • 可以将Orleans配置为在超时时自动重试。默认情况下,它会执行自动重试。

  • 应用程序代码当然也可以选择在超时时重试。

如果Orleans系统配置为不进行自动重试(默认设置),且应用程序未重新发送 ,则Orleans提供最多一次消息传递。消息将被传递一次或根本不传递。永远不会传递两次。

在具有重试的系统中(由运行时或应用程序),消息可能多次到达。Orleans目前没有做任何事情,来持久存储哪些消息已经到达,然后禁止第二次传送。(我们相信这会是相当昂贵的代价。)因此,在重试的系统中,Orleans保证最多一次传递。

如果您继续无限期地重试,则消息最终会到达,从而提供至少一次传递保证。请注意,“最终会到达”是运行时需要保证的。即使你不断地重试,它也不会凭空地到达。因为grain永远不会进入任何永久性故障状态,并且故障的grain最终将在另一个silo上重新激活,所以Orleans提供了最终的传递。

总而言之:在没有重试的系统中,Orleans保证最多一次的消息传递。在具有无限重试的系统中,Orleans保证至少一次(并且不保证最多一次)。

注意:在Orleans技术报告我们并非故意地只提到了自动重试的第二个选项。我们忘记提到,在默认情况下是不会重试的,Orleans提供最多一次传递。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值