为什么恰好一次语义不可行?

2023-12-28

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

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

例如,如果客户端不断重新发送唯一标记的请求,直到收到答复,并且服务器会跟踪所有已处理的请求,以免重复请求。那岂不是正好一次吗?


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

您最多可以通过记录请求然后执行它来获取一次。如果您在两者之间发生崩溃,那么您(错误地)将其记录为已执行的操作,因此您不会再这样做。因此最多一次

奇怪的是,这个(带有超时)已获得专利:http://www.freepatentsonline.com/7162512.html http://www.freepatentsonline.com/7162512.html。除了我上面所说的之外,它并不能保证恰好一次。

通过执行然后记录下来,你至少可以得到一次。如果两者之间发生崩溃,如果重复请求,您将再次执行该操作。

但在所有情况下都说“恰好一次”并不现实

(类似的场景是网络错误而不是服务器崩溃)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么恰好一次语义不可行? 的相关文章

  • Python UPnP/IGD 客户端实现?

    我正在寻找一个开源实现UPnP http elinux org UPnPPython 中的客户端 更具体地说是它的互联网网关设备 http en wikipedia org wiki Internet Gateway Device Prot
  • 如何在 NLog 中记录网络目标的异常

    我正在使用NLog http nlog project org日志框架 并尝试获取任何 UDP 记录器应用程序中显示的异常和堆栈跟踪信息 例如Sentinel http sentinel codeplex com and Log2控制台 h
  • 从java小程序获取正确的本地IP地址

    我想从我的 java 小程序确定本地 IP 地址 问题是当同一台机器上有多个 IP 地址时 该机器具有 LAN 和互联网连接 掌上电脑 VMWare 这是我的测试 public static void main String args tr
  • 如何从互联网访问本地网络内的服务器

    假设我有一个服务器应用程序在未直接连接到互联网但通过路由器连接的计算机上工作 所以问题是如何从不在内部网络 从互联网 内的另一台计算机连接到该服务器 据我所知 管理员可以配置路由器将指定端口请求重定向到该计算机 但我可以自动执行此操作吗 我
  • 网络服务发现不是发现服务类型

    我想通过 Android 设备在本地网络中找到服务器 我可以通过使用找到它NSDManager具有服务器服务类型的服务 例如 workstation tcp是服务类型 在我的本地网络中我有一个 无线路由器和无线中继器 两者都有不同的SSID
  • docker 主机 (OSX) 上的关闭端口在内部 docker 网络上保持/报告打开状态

    在 OSX 12 3 上将 Docker 升级到 4 6 0 后 当我停止 PHPStorm 中的 xdebug 监听客户端时 我遇到了一些奇怪的问题 似乎后续请求总是超时 因为 docker 报告 host docker internal
  • Android,在连接wifi的情况下与移动数据通信,无需上网

    我有一个汽车配套应用程序 需要与 WiFi 和移动数据网络进行通信 我的车辆控制单元提供了一个无需互联网访问的 WiFi 网络 它公开了我们可以从应用程序调用的 API 服务 除此之外 我们还需要使用手机移动数据 3G 4G 与另一个可通过
  • 以编程方式启用 Internet 连接共享

    我可以手动执行此操作 方法是右键单击网络连接 打开 共享 选项卡 单击 允许其他网络用户通过此计算机的 Internet 连接进行连接 复选框 然后选择 家庭网络连接 在研究这个问题时 我发现了多组 COM 接口 1 Internet 连接
  • 了解路由表条目

    我想问一个关于Linux中route命令的问题 我已在 Linux 终端中输入以下命令 gt route 并得到输出 Destination Gateway Genmask Flags Metric Ref Use Iface 192 16
  • 如何限制 Android 设备网络速度以进行测试

    我正在测试一个 Android 应用程序 该应用程序在低质量网络上管理其内容时遇到一些问题 我无法验证问题是否仍然存在 因为以我家的网络速度 120mb s 在我设法开始复制路线之前 所有内容都已经下载完毕 在这种情况下 不能选择使用 An
  • gwt - 在 RPC 调用中使用 List

    我有一个 RPC 服务 方法如下 public List
  • 如何限制 docker 容器仅侦听来自本地主机的连接?

    我正在运行一个 docker 容器docker run p 8080 8080 其他计算机可以通过访问访问我的服务器 my ip 8080 但是 出于安全原因 我希望只有 localhost 127 0 0 0 能够访问我的服务器 我不希望
  • CDN DNS 如何工作 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 最近 我在CDN上看到了我的介绍 http www aflexi net technology how aflexi cdn works http w
  • TCL类C10K事件服务器开发进展如何?

    TCL 是一种很好的简单编程语言 但似乎没有得到认可和 或尊重它deserves http antirez com articoli tclmisunderstood html 我 1995 年在大学时就学过它 但很快就忘记了 直到最近才再
  • python 中的原始套接字和 sendto

    我正在努力将 scapy 与twisted 集成 但我在 OSX 上遇到了这个非常奇怪的错误 我似乎无法弄清楚 基本上我无法通过原始套接字发送有效的 TCP 数据包 包括 IP 标头 这就是我正在做的 import socket from
  • Chrome 开发者工具中“网络”选项卡中的“连接”是什么意思?为什么它仅在某些网站上显示?

    我一直试图在网上寻找解释 但似乎找不到 如果您在 Chrome 上访问像 youtube com 这样的网站 并将鼠标悬停在与文件名 http www youtube com 相对应的蓝色条上 您会看到四种不同的内容 阻塞 Sending
  • 在 scapy 中通过物理环回发送数据包

    我最近发现了 Scapy 它看起来很棒 我正在尝试查看 NIC 上物理环回模块 存根上的简单流量 但是 Scapy sniff 没有给出任何结果 我正在做的发送数据包是 payload data 10 snf sniff filter ic
  • 什么是监控网络活动的好工具[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我经营的是小区 现在我正在寻找一个在服务器 Windows 或 Linux 上运行的监控工具 它可以跟踪
  • Retrofit + Rxjava 服务器连接失败时调用onError需要很长时间

    我正在使用 Retrofit Rxjava 从服务器获取实体列表 根据我的设计 当任务失败时 它首先检查互联网连接 然后检查与服务器的连接doOnError的方法Observable 当客户端没有连接到互联网时doOnError在合理的时间
  • 用java实现我自己的远程桌面

    我正在尝试用java实现我自己的远程桌面解决方案 使用套接字和 TCP UDP 我知道我可以使用 VNC 或其他任何东西 但我想做的是学校的作业 因此 为了移动鼠标并单击 我可以使用 Robot 类 我对此有两个问题 发送视频怎么样 我知道

随机推荐