zeromq - ZeroMQ:到 DEALER 套接字代理的 STREAM 套接字
问题描述
我有以下设置:
zmq::proxy( acceptor, clients, nullptr );
我acceptor
是一个zmq::socket_type::stream
,
我clients
是一个zmq::socket::type::dealer
。
我发现当另一端发送一个大请求 ( ~ 16 [kB]
) 时,请求被分解并分段分发给我的经销商线程。一位经销商掌握了信息的主要内容,其他经销商则获得了中间部分。我没有设置任何特殊选项,所以这似乎是默认的 zeromq 行为。
我正在使用 ZeroMQ 4.2.2。
有没有办法覆盖这种行为并保证将完整的消息传递到我的经销商线程?
解决方案
@namdam 值得 [+1] 发布版本详细信息
是否有任何方法可以覆盖它...?
是的,请遵循 API 记录的规则
使用传输时,类型的套接字
ZMQ_STREAM
用于从非 ØMQ 对等方发送和接收 TCP 数据tcp://
。套接字可以ZMQ_STREAM
充当客户端和/或服务器,异步发送和/或接收 TCP 数据。兼容的对等套接字。. . . . 没有。
因此,无论哪种方式,组合代理来处理兼容的套接字原型(不尝试硬连线ZMQ_STREAM
到任何其他 ZeroMQ 原生套接字原型),即完全避免使用ZMQ_STREAM
,或者创建一个读取网关,解码和调解ZMQ_STREAM
一个上的兼容行为侧和与网关逻辑另一侧的其他 ZeroMQ 原生套接字架构类型的接口。
如果有疑问,
您可能会喜欢阅读[ ZeroMQ 层次结构在不到 5 秒内]部分中简要概述的主要概念差异。
推荐阅读
- javascript - 帧率下降 Socket.io
- python - dlib python人脸编码vs c++人脸编码
- scala - 从目录读取时如何抛出异常?
- html - 使幻灯片的背景透明
- ssl - 如何使用 httpClient4 使用 Axis2 配置 SSL
- java - LocalDateTime.now() 错误的时间
- api - 如何通过 API 更改 Gitlab 中的镜像设置?
- reactjs - React.js 无法获取未定义或空引用的属性“调度”
- angular - 是什么导致 Angular 应用程序在页面中途加载它的组件?
- r - 保存由 ggplotGrob 生成的 ggplot2 时间序列图 grob