当前位置:  开发笔记 > 编程语言 > 正文

为什么一旦语义不可行?

如何解决《为什么一旦语义不可行?》经验,为你挑选了1个好方法。

在RPC语义中,Erlang有最好的希望,SUN RPC至少有一次,Java RMI最多只有一次,但没有人只有一次语义.

为什么只有一次语义似乎不可行?

例如,如果客户端继续重新发送唯一标记的请求,直到收到回复并且服务器跟踪所有处理的请求以便不复制请求.这不是一次吗?



1> The Archetyp..:

考虑如果服务器在执行请求和记录它已执行请求之间崩溃会发生什么?

你可以通过记录请求,然后执行它来获得最多一次.如果你在两者之间发生了碰撞,那么你(错误地)将其记录为执行,所以你不会再这样做了.因此,至多一次

奇怪的是,这个(带有超时)已获得专利:http://www.freepatentsonline.com/7162512.html .除了我上面提到的,它并不能完全保证一次.

通过执行它,然后记录它,你得到至少一次.如果您在两者之间发生崩溃,如果重复请求,您将再次执行此操作.

但在所有情况下说"完全一次"并不可行

(网络错误有类似的情况,而不是服务器崩溃)

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有