ZeroMQ:DEALER套接字代理的STREAM套接字

时间:2018-05-17 20:25:19

标签: zeromq

我有以下设置:

    static void Main(string[] args)
    {
        List<auto> autos = new List<auto>();
        autos.Add(new auto("Lamborgini" , "Aventador" , "2004"));
        display(autos);
    }

我的 zmq::proxy( acceptor, clients, nullptr ); acceptor,我的 zmq::socket_type::stream clients。< / p>

我发现当另一端发送大量请求( zmq::socket::type::dealer )时,请求会被分解并分发给我的经销商线程。一个经销商得到了消息的负责人,其他经销商得到了中间的碎片。我没有设置任何特殊选项,因此看起来这是默认的zeromq行为。

我正在使用ZeroMQ 4.2.2。

有没有办法覆盖这种行为并保证向我的经销商线程传递完整的消息?

1 个答案:

答案 0 :(得分:1)

@namdam在发布版本详细信息方面值得[+1]

  

有什么可以覆盖这个......

是的,请遵循API记录的规则

  

ZMQ_STREAM 类型的套接字用于在使用 tcp:// 传输时从非ØMQ对等方发送和接收TCP数据。 ZMQ_STREAM 套接字可以充当客户端和/或服务器,异步发送和/或接收TCP数据。

     

兼容的对等套接字。 。 。 。 。的

所以无论哪种方式,编写代理来处理兼容的socket-archetypes(没有尝试将ZMQ_STREAM硬连线到任何其他ZeroMQ本机套接字原型),即完全避免使用ZMQ_STREAM,或者创建一个读取网关,它在一侧解码和调解 ZMQ_STREAM 兼容行为,并与网关逻辑另一侧的其他ZeroMQ本机套接字 - archtypes接口。

如果有疑问,您可以阅读[ZeroMQ hierarchy in less than a five seconds] 部分中主要概念差异的简要介绍强>