ZMQ 模式经销商/路由器心跳

2024-04-23

我在客户端有一个经销商套接字,它连接到服务器端的路由器套接字。

我经常看到心跳机制:服务器定期向客户端发送消息,以便客户端知道自己是否正确连接到服务器,以便客户端在一段时间内没有收到消息时可以重新连接。

例如这里的偏执海盗模式:http://zguide.zeromq.org/page:chapter4 http://zguide.zeromq.org/page:chapter4

但经过一些测试:如果客户端暂时失去与服务器的连接并再次找到它,则客户端会自动重新连接到服务器套接字(他接收发送的消息......)。

我想知道什么情况下需要心跳?


心跳不需要保持连接活动(TCP 套接字有一个 ZMQ_TCP_KEEPALIVE 套接字选项)。相反,双方都需要心跳才能知道对方仍然处于活动状态。如果任何一方确实检测到另一方不活动,则可以采取替代行动。

不活动可能是因为进程已死亡、死锁、在网络活动之间做了太多工作或网络故障等。从另一方的角度来看,如果没有更多信息,所有这些情况都无法区分。

在网络中,进行设计是比较容易的部分。最困难的部分是应对失败。您必须考虑尽可能多的可能的故障模式,并在设计协议中处理它们。心跳通常是这些协议中有用的部分。例如,它们比尝试使用监视器事件来确定套接字是否仍在运行要有用得多。

话虽如此,如果您的应用程序不需要任何特定级别的可靠性;也许您可以在发生故障时重新启动设备。那么你可能不需要担心心跳。毕竟,指南中有很多模式没有使用它。这是课程的马。

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

ZMQ 模式经销商/路由器心跳 的相关文章

  • 套接字对和一对无名管道有什么区别吗?

    我不仅想知道用户端的差异 还想知道 Linux 内核实现中的差异 共同部分 管道是单向的 因此需要两个管道才能进行双向通信 而套接字对是双向的 管道始终是面向流的 而套接字对可以是面向数据报的 套接字对正常AF UNIX套接字 这意味着辅助
  • lua http套接字超时

    LuaSocket HTTP 模块文档说可以在 HTTP 连接上设置超时 可以设置以下常量来控制 HTTP 模块的默认行为 PORT 用于连接的默认端口 PROXY 用于连接的默认代理 TIMEOUT 设置所有I O操作的超时时间 USER
  • 接收客户端返回的数据

    我使用套接字连接从服务器发送了一个缩放数组到客户端 它运行良好 现在我想将数据发送回服务器以在服务器中取消缩放 数据一次每行发送到客户端 因此我尝试将它们按顺序放回到名为 Final 的空数组中 这是服务器 py import socket
  • 获取Socket使用的本地端口

    我需要获取 客户端 套接字使用的本地端口 我的理解是Windows Sockets performs an implicit bind function call 所以getsockname after sendto 应提供分配的端口 但是
  • 理解 htonl() 和 ntohl()

    我正在尝试使用 unix 套接字来测试向本地主机发送一些 udp 数据包 据我了解 当设置 ip 地址和端口以发送数据包时 我会填写我的sockaddr in将值转换为网络字节顺序 我在 OSX 上 我很惊讶这个 printf ntohl
  • Python 套接字库认为套接字未打开时已打开

    我正在使用一些Python 如下所示 HOST 127 0 0 1 PORT 43434 single socket socket socket AF INET socket SOCK STREAM try single bind HOST
  • 管道破裂错误

    我在 FTP 实现中的打开的数据套接字上使用 write 来发送文件 但写入一些数据后 它会挂起一段时间 之后它会返回 损坏的管道 错误 对此的任何帮助将不胜感激 我的进程从一个缓冲区读取数据包并写入套接字 我在增加带宽时注意到了这个问题
  • 为什么我在 Python 中收到“连接被拒绝”错误? (插座)

    我是套接字新手 请原谅我完全缺乏理解 我有一个服务器脚本 server py usr bin python import socket import the socket module s socket socket Create a so
  • 为多线程 UDP 客户端执行“close ()”时套接字描述符未释放

    我在下面编写了 UDP 客户端 它基本上生成一个单独的线程来接收数据报 但是数据报仅在主线程中发送 现在 在 Linux 发行版上实例化 udpClient 1 UDP 客户端后按 ctrl D 实现退出循环 围绕 getline 调用 并
  • 在 PowerShell 中通过 UDP 发送和接收数据

    我正在尝试编写一个脚本来使用 PowerShell 进行测试和应用 测试应包括通过 UDP 向远程服务器发送字符串 然后读取该服务器的响应并对结果执行某些操作 我需要的唯一帮助是脚本的中间两个步骤 发送字符串 然后 接收响应 在端口 UDP
  • AttributeError:“str”对象没有属性“decode”

    我将使用 pip 软件包安装程序在我的电脑上安装 ZeroMQ 库 我用https learning 0mq with pyzmq readthedocs org en latest pyzmq basics html installati
  • ZeroMQ可以用来接受传统的套接字请求吗?

    我正在尝试使用 ZeroMQ 重写我们的旧服务器之一 现在我有以下服务器设置 适用于 Zmq 请求 using var context ZmqContext Create using var server context CreateSoc
  • php中的可变长度数据包

    我正在接收通过 UDP 发送到我的服务器的数据包 我正在使用 socket read 来读取数据 它运行得很好 但是我遇到了一个错误 在我的例子中 socket read 的长度参数并不总是相同的 数据长度的范围可以是 50 150 字节
  • 如何在 Android 中从服务器检索数据时更新滚动的 ListView?

    目前 我正在使用 AsyncTask 来处理 Http 连接并以 JSON 格式检索数据 加载所有数据很简单 但会消耗太多时间 因此我决定使用一次加载 10 个项目LIMIT OFFSET mysql 接下来我设置事件onScroll为我的
  • Socket.IO 消息不更新 Angular 变量

    我有一个 socket io 客户端 服务器设置 并在客户端上运行 AngularJS Server js var io require socket io server io on connection function socket s
  • 多处理与 gevent

    目前我正在使用带有发布 订阅模式的 Zeromq 我有一个要发布的工作人员和许多 8 个订阅者 所有人都会订阅 相同的模式 现在我尝试使用多处理来生成订阅者 它可以工作 我错过了一些消息 我使用多重处理的原因是在每条消息到达时对其进行处理
  • 如何在S3中存储数据并允许用户使用rails API / iOS客户端以安全的方式访问?

    我是编写 Rails 和 API 的新手 我需要一些有关 S3 存储解决方案的帮助 这是我的问题 我正在为 iOS 应用程序编写一个 API 用户在 iOS 上使用 Facebook API 登录 服务器根据 Facebook 向 iOS
  • 是否可以找到哪个用户位于 localhost TCP 连接的另一端?

    这是一个编程问题 但它是 Linux Unix 特定的 如果我从本地主机获得 TCP 连接 是否有一种简单的方法可以告诉哪个用户在 C 程序内建立了连接而无需 shell 我知道这对于 Unix 域套接字来说并不太难 我已经知道远程 IP
  • 在 PCL 中使用 System.Net.Sockets(.Net 4.5 + 电话 8)

    我现有的 Net 库已经适用于 Net 4 5 和 Windows Phone 8 现在我想将其转换为可移植类库 突然我无法使用System Net Sockets不再了 我只检查了 Net 4 5和Windows Phone 8 未选择X
  • 用于客户端存储和服务器端同步的javascript库[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个 javascript 库 它可以让我将数据存储在客户端数据库中 并在后台自动将数据库同

随机推荐

  • 数独回溯 无效数独

    我创建了一个数独回溯求解器 它工作得很好 但现在如果数独无法解决 我想给出一个错误 因为它无效 例如 如果给出这个数独 http img5 imageshack us img5 2241 sudokugq jpg http img5 ima
  • MongoDB 空字符串值与 null 值

    在 MongoDB 生产中 如果某个键的值为空或未提供 可选 我应该使用空字符串值还是应该使用 null 作为值 1 使用空字符串与空字符串之间有什么优缺点吗 2 如果我将值设置为 undefined 以从现有文档中删除属性 与让属性值设置
  • 如何确定 iPhone 正在使用/解锁

    我面临的要求之一是需要检测用户是否正在使用 iPhone 即使我的应用程序也在后台 到目前为止 我找到了以下出路 但没有一个指向解锁机制 applicationProtectedDataWillBecomeUnavailable 这将告诉用
  • 当计算机通过组策略锁定时,C# SessionSwitchReason.SessionLock 不会触发

    编辑 这里的问题不是它是通过 GP 锁定的 而是它是在服务帐户下作为服务运行的 并且它无权访问交互式桌面 我有一个 C 应用程序 需要检查用户会话何时被锁定 我正在使用Microsoft Win32 SystemEvents Session
  • Java EE 身份验证:如何捕获登录事件?

    给定为 Java Web 应用程序定义的 FORM 类型的身份验证机制 如何捕获已执行登录在重定向到请求的资源之前发生事件 是否有任何类型的侦听器可以让我在用户登录时执行我的代码 我觉得定义过滤器不是最好的解决方案 因为过滤器链接到资源 即
  • PHP:使用strlen获取远程文件大小? (html)

    我正在查看 fsockopen 之类的 PHP 文档 他们说你不能在远程文件上使用 filesize 而不用 ftell 或其他东西做一些疯狂的事情 不确定他们到底说了什么 但我有一个很好的想法怎么做 file file get conte
  • setInterval() 只运行一次函数

    我想定期查询 PHP 脚本以获取新消息 为此 我使用 setInterval 函数和 AJAX document ready function var queryInterval 1000 How fast we query for new
  • C++ 类方法的 LD_PRELOAD

    我需要在 C 程序中插入方法调用 该类驻留在单独的共享库中 我以为我可以使用 LD PRELOAD 但我不确定这将如何工作 我只找到了 C 函数的示例 是否有一种方法可以为单个方法设置插入 而无需从插入的类实现中复制任何代码 只需为插入的代
  • OpenGL NURBS 曲面

    我正在学习 OpenGL 我想要一个中间有轻微驼峰的表面 我目前正在使用这段代码 但我不确定如何调整 ctrl 点以使其达到我想要的方式 它目前就像 我想要这样的 我不完全确定我应该使用哪些控制点 并且我对其工作原理感到困惑 include
  • Microsoft Cognitive API 不断告诉我:“消息”:“输入数据不是有效的图像或受密码保护。”

    我有图像的 base64 字符串 我正在尝试将其转换为 应用程序 八位字节流 因为这就是 api 所需要的 我认为我已经通过创建一个 blob 来做到这一点 正如您从我的函数中看到的那样 当我进行 api 调用时 我不断收到标题中的消息 有
  • 如何通过 JOIN 组合(合并)相似的列以删除 NULL

    问题简介 我有一个名为 客户 的超类表和两个从客户继承的名为 个人 和 公司 的子表 因此 客户实体与 人 或 公司 具有一对一的关系 客户只能是 个人 或 公司 但不能同时是两者 如下所示 Customer Person Company
  • 可以用excel引用外部宏吗?

    我有一个相当复杂的宏 需要在多个不同的 Excel 工作表上运行 该宏会定期更新 并且每当进行更改时 都需要在每个单独的 Excel 工作表中进行更改 有没有一种方法可以让每个Excel文档引用一个宏 例如 如果我有这样的层次结构 DOCU
  • Azure AD - 获取用户的个人资料照片,OAUTH 访问失败

    我正在尝试在使用 EWS 连接到 Office 365 的电子邮件应用程序的上下文中访问登录用户的个人资料照片 该应用程序已在 Portal azure com 上注册 并具有以下所需权限 Office 365 Exchange Onlin
  • 如何将图标放入自定义对话框的标题中

    我想将一个可绘制对象放入对话框标题栏中 我尝试了以下方法 final Dialog dialog new Dialog this dialog requestWindowFeature Window FEATURE LEFT ICON di
  • 带有身份的 ASP.NET Core 2.0 中的 Cookie 过期

    环境 ASP NET Core 2 0 带有cookie的身份 In Startup ConfigureServices 有这样的 services ConfigureApplicationCookie options gt options
  • TikTok 登录套件:非法重定向链接

    我正在看新的TikTok 登录套件对于网络 我陷入了重定向步骤 与所有基于 oAuth 的服务类似 当您注册应用程序时 它们应该要求提供有效的重定向 URL 对于 TikTok 他们要求重定向域 如下所示 然后根据他们的官方文档 https
  • Laravel 5.1 失败的排队作业在 failed() 方法上失败,阻止调用队列失败事件处理程序

    我正在测试 Laravel 5 1 中的队列功能 我可以让作业在我的数据库表中排队 称为作业 并且可以让它们成功运行 我还创建了一个名为 failed jobs 的队列失败表 为了测试它 在作业表中 我操作有效负载数据以使其失败 然后像这样
  • Swift:递归值类型

    我有一个结构 我想在其中有一个 Struct 类型的全局变量 这个例子本质上是我实际创建的结构的简短版本 struct SplitString splits a string into parts before and after the
  • 正则表达式中的顺序不重要吗?

    我正在查看此 stackoverflow 链接中提出的问题 奇数个 a 的正则表达式 https stackoverflow com questions 28902496 regular expression for odd number
  • ZMQ 模式经销商/路由器心跳

    我在客户端有一个经销商套接字 它连接到服务器端的路由器套接字 我经常看到心跳机制 服务器定期向客户端发送消息 以便客户端知道自己是否正确连接到服务器 以便客户端在一段时间内没有收到消息时可以重新连接 例如这里的偏执海盗模式 http zgu