- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我一直在使用 ZeroMQ 的请求/响应套接字来在 Web 应用程序和用于卸载处理的从属应用程序之间交换消息。我注意到在某些情况下,并不是所有发送的 ZMQ 消息都被另一方实际接收到。更奇怪的是,即使使用 IPC 协议(protocol)也会发生这种情况,我认为该协议(protocol)非常可靠。
发送的消息未送达但未产生任何错误的原因是什么?
这是客户端代码的示例:
# ironic
class ReliableClient(object):
def _reconnect(self):
if self.socket:
self.socket.close()
self.socket = None
self.socket = self.context.socket(zmq.REQ)
self.socket.connect(self.server_url)
# Give the server 2 sec to respond
self.socket.RCVTIMEO = 2000
self.socket.SNDTIMEO = 2000
self.socket.LINGER = 3
def __init__(self, server_url=None, server_name=None):
self.socket = None
self.server_url = server_url
if server_name is None:
self.server_name = server_url
else:
self.server_name = server_name
self.lock = threading.Lock()
self.context = zmq.Context()
self._reconnect()
def msg(self, msg):
raw_out = dumps(msg)
# send
self.lock.acquire()
try:
self.socket.send(
raw_out,
copy=True
)
except zmq.ZMQError as ex:
log.exception(ex, '%s: failed to send', self.server_name)
self.lock.release()
raise CommunicationError('failed to send')
# receive
try:
raw_in = self.socket.recv()
except zmq.ZMQError as ex:
log.exception(ex, '%s: failed to receive', self.server_name)
raise CommunicationError('failed to receive')
finally:
self.lock.release()
msg_in = loads(raw_in)
return msg_in
最佳答案
我不熟悉 IPC 协议(protocol),但我广泛使用过 ZMQ/TCP。
如果您使用得当,即使是最简单的基于 TCP 的 ZMQ REQ/REP 模式也绝不会丢弃消息。如果您的网络连接或远程端点出现故障,它可能会无限期挂起,但它永远不会无提示地失败。某些套接字在设计上会在某些情况下丢弃消息。例如,有些可能会在达到 HWM 时丢弃消息。
关于python - ZeroMQ 可靠性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18236368/
01、记录器的生命周期 Serilog 大多数情况下“只需使用”,并且在创建和处理日志记录器时不需要过多考虑。然而,由于以下原因: 某些接收器(sink)涉及后台进程,特别是那些使用网络的接收器;
有在项目中使用过Java Kryonet库的 friend 愿意分享一下经验吗?我看到它被推荐过几次,但实际上没有看到任何人谈论他们使用它的经历。 具体来说,我想确保它可靠且相对稳定。或者我应该考虑使
如果我不希望用户能够访问某个页面,我需要重定向用户。例如,header('Location: ../acc/login.php'); 有多可靠?浏览器可以忽略 302 错误吗,这是正确的方法吗?提前致
我一直在使用 ZeroMQ 的请求/响应套接字来在 Web 应用程序和用于卸载处理的从属应用程序之间交换消息。我注意到在某些情况下,并不是所有发送的 ZMQ 消息都被另一方实际接收到。更奇怪的是,即使
我目前的情况是我有一个应用程序需要在新数据到达数据库表时得到通知。数据来自外部来源(我无法控制——这是唯一的集成选项)。当新数据到达时,我的应用程序需要采取某些操作——基本上是查询新数据、处理它、将结
嗨 如果lucene索引上只发生插入操作(没有删除/更新),那么docID是否真的没有改变?而且它也可靠 如果这是真的,我想用它来增量加载 FieldCache 以降低加载所有文档的开销,最好的解决方
我正在尝试使用 ActiveMQ 创建可靠的 JMS 环境。我打算采用 JDBC 主从集群方法,在这种方法中,我可以将主服务器收到的消息保存到数据库中,从服务器可以选择这些消息并运行它们,以防主服务器
我正在开发依赖于设备 UUID 的 Apache Cordova 应用程序。几个问题在我脑海中闪过,但不幸的是,我似乎无法在任何地方找到答案。 获取的 device.uuid 对于每个平台是否都相同,
这个问题是对 Intercepting/Rerouting TCP SYN packets to C++ program in linux 的(某种)跟进. 问题是:如果 SYN 或任何其他 TCP
是否存在 localIdentifier 可能会更改或不准确的情况?我正在开发一个备份照片的应用程序,我的同事告诉我不能信任 localIdentifier。然而,在做了一些研究之后,我一直无法找到任
我们的应用程序使用 APNS 来接收推送通知。然而,我们的客户声称他们的一些设备没有收到通知,并争辩说他们“必须”确保通知 100% 送达。但我读过somewhere APNS 不是 100% 可靠的
来自ZooKeeper FAQ : Reliability: A single ZooKeeper server (standalone) is essentially a coordinator w
我正在制作一个需要存储一些用户数据的 PhoneGap 应用程序。在初始应用程序启动时,将要求用户输入 URL。由于 URL 可能很长,我希望将其保存在用户的设备上,这样他就不需要在每次启动应用程序时
我是 Node.js 的新手,目前正在质疑它的可靠性。 根据我目前看到的情况,似乎存在一个重大缺陷:任何 Uncaught Error /异常都会导致服务器崩溃。当然,您可以尝试对您的代码进行防弹或将
Google PubSub 是否适合小批量(10 条消息/秒)但任务关键型消息传递,保证在任何固定时间段内及时传递每条消息? 或者,它是否更适合高吞吐量,其中个别消息可能偶尔会丢失或无限期延迟? 编辑
Erlang据报道,它已在生产系统中使用了 20 多年,正常运行时间百分比为 99.9999999%。 我做了如下数学计算: 20*365.25*24*60*60*(1 - 0.999999999)
我最近看到this SO 发布有关获取请求域的文章。我想知道此信息是否可靠(即攻击者可以“伪造”此信息吗?)。具体来说,域和请求类型(GET、POST 等)。我问的原因是因为我不确定是否可以使用它来保
谁能告诉我,当将操作发布到时间轴时,Facebook 的开放图谱 API 的可靠性如何? 背景: 我创建了一个新的 FB iOS 应用 使用自定义对象“blogpost”创建新的操作类型“write”
我正在进行 Windows Azure 试用,以评估将多个商业 ASP.NET 站点从专用托管迁移到 Azure 的情况。一切都很顺利......直到现在! 一些背景 - 站点是使用 SQL Azur
在进行代码审查时我偶然发现了 GWM在 Java-Spring-GWT Web 应用程序中。由于我不知道这个产品,我访问了它的网站,发现它的开发似乎在 2007 年停止了,因为它的最后一个稳定版本是
我是一名优秀的程序员,十分优秀!