使用TCP作为传输层的ZeroMQ PUB / SUB模式的奇怪行为


纾潆锦袖迷子
2024-12-07 04:02:31 (3月前)


为了设计我们的API /消息,我已经对我们的数据进行了一些初步测试:

Protobuf V3消息:

消息TcpGraphes {
uint32 flowId = 1;
重复uint64 ……

2 条回复
  1. 0# Coolkid | 2019-08-31 10-32



    表现引起了兴趣?



    好吧,让我们首先更充分地使用资源:




    1. // //////////////////////////////////////////////////////
      // zeroMQ init
      // //////////////////////////////////////////////////////

    2. zmq_ctx = zmq_ctx_new();

    3. int aRetCODE = zmq_ctx_set( zmq_ctx, ZMQ_IO_THREADS, 10 );

    4. assert( 0 == aRetCODE );

    5. zmq_pub_sock = zmq_socket( zmq_ctx, ZMQ_PUB );

    6. aRetCODE = zmq_setsockopt( zmq_pub_sock, ZMQ_AFFINITY, 1023 );
    7. //                                                     ^^^^
    8. //                                                     ||||
    9. //                                 (:::::::::::)-------++++
    10. // >>> print ( "[{0: >16b}]".format( 2**10 - 1 ) ).replace( " ", "." )
    11. // [......1111111111]
    12. //        ||||||||||
    13. //        |||||||||+---- IO-thread 0
    14. //        ||||||||+----- IO-thread 1
    15. //        |......+------ IO-thread 2
    16. //        ::             :         :
    17. //        |+------------ IO-thread 8
    18. //        +------------- IO-thread 9
    19. //
    20. // API-defined AFFINITY-mapping
    21. </code>


    具有更新API的非Windows平台还可以触及调度程序详细信息并更好地调整O / S端优先级。





    联网 ?



    好吧,让我们首先更充分地使用资源:




    1. aRetCODE = zmqsetsockopt( zmq_pub_sock, ZMQ_TOS, <_a_HIGH_PRIORITY_ToS#> );

    2. </code>




    将整个基础设施转换为


    epgm://

    </强>



    好吧,如果有人希望进行实验并获得有关进行E2E的保证资源。


登录 后才能参与评论