zeromq - ZeroMQ,异步阻塞套接字
问题描述
我正在构建一个分布式系统,我希望双方异步发送和接收,并在高水位标记后阻塞。
PUSH/PULL 套接字效果很好,但我无法绑定 PUSH 套接字。这意味着如果客户端在防火墙后面,我不能有一个客户端-PUSH 到服务器-PULL 和一个服务器-PUSH 到客户端-PULL,因为服务器无法连接到客户端。
在书中,写了以下内容,但我找不到它的例子。“REQ to DEALER:理论上你可以这样做,但如果你添加第二个 REQ,它会中断,因为 DEALER 无法向原始对等方发送回复。因此 REQ 套接字会混淆,和/或返回消息意味着给另一个客户。” http://zguide.zeromq.org/php:chapter3
我只需要一对一的连接,所以理论上这对我有用。
我的问题是,在不丢包的情况下,使用 ZeroMQ 获得异步发送和接收的最佳实践是什么?
解决方案
大多数 ZeroMQ 套接字都可以绑定(侦听特定端口,充当服务器)和连接(充当客户端)。它通常与数据流无关。有关更多信息,请参阅指南。
尝试在您的服务器上绑定 PUSH 套接字并从您的客户端 PULL 套接字连接。
推荐阅读
- python-3.x - Insert a value into a DynamoDB table with integer attributes using Boto
- javafx - 表格视图单元格的类型安全样式表,具体取决于条件
- amazon-web-services - Glue 作业的自定义 Cloudwatch 日志组
- python - FileNotFoundError 与 matplotlib 和 tkinter
- ios - iOS 9 上的 UITableViewHeaderFooterView 宽度问题
- javascript - 获取:语法错误:缺少:在条件表达式中
- c# - 尝试删除 Azure Functions 中的 blob,但缺少 DeleteIfExists 方法
- c - 带/不带选项的 getopt 用法
- python - 从两个离散函数中获得最大值的最短 Python 代码是什么?
- visual-studio - 无法更新工作项 - 原因:TF237124:工作项尚未准备好保存