通讯模式


端到端的关系

Client-Server模式

#mermaid-svg-scaLfxhRgQcScuEg .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-scaLfxhRgQcScuEg .label text{fill:#333}#mermaid-svg-scaLfxhRgQcScuEg .node rect,#mermaid-svg-scaLfxhRgQcScuEg .node circle,#mermaid-svg-scaLfxhRgQcScuEg .node ellipse,#mermaid-svg-scaLfxhRgQcScuEg .node polygon,#mermaid-svg-scaLfxhRgQcScuEg .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-scaLfxhRgQcScuEg .node .label{text-align:center;fill:#333}#mermaid-svg-scaLfxhRgQcScuEg .node.clickable{cursor:pointer}#mermaid-svg-scaLfxhRgQcScuEg .arrowheadPath{fill:#333}#mermaid-svg-scaLfxhRgQcScuEg .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-scaLfxhRgQcScuEg .flowchart-link{stroke:#333;fill:none}#mermaid-svg-scaLfxhRgQcScuEg .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-scaLfxhRgQcScuEg .edgeLabel rect{opacity:0.9}#mermaid-svg-scaLfxhRgQcScuEg .edgeLabel span{color:#333}#mermaid-svg-scaLfxhRgQcScuEg .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-scaLfxhRgQcScuEg .cluster text{fill:#333}#mermaid-svg-scaLfxhRgQcScuEg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-scaLfxhRgQcScuEg .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-scaLfxhRgQcScuEg text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-scaLfxhRgQcScuEg .actor-line{stroke:grey}#mermaid-svg-scaLfxhRgQcScuEg .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-scaLfxhRgQcScuEg .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-scaLfxhRgQcScuEg #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-scaLfxhRgQcScuEg .sequenceNumber{fill:#fff}#mermaid-svg-scaLfxhRgQcScuEg #sequencenumber{fill:#333}#mermaid-svg-scaLfxhRgQcScuEg #crosshead path{fill:#333;stroke:#333}#mermaid-svg-scaLfxhRgQcScuEg .messageText{fill:#333;stroke:#333}#mermaid-svg-scaLfxhRgQcScuEg .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-scaLfxhRgQcScuEg .labelText,#mermaid-svg-scaLfxhRgQcScuEg .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-scaLfxhRgQcScuEg .loopText,#mermaid-svg-scaLfxhRgQcScuEg .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-scaLfxhRgQcScuEg .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-scaLfxhRgQcScuEg .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-scaLfxhRgQcScuEg .noteText,#mermaid-svg-scaLfxhRgQcScuEg .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-scaLfxhRgQcScuEg .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-scaLfxhRgQcScuEg .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-scaLfxhRgQcScuEg .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-scaLfxhRgQcScuEg .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-scaLfxhRgQcScuEg .section{stroke:none;opacity:0.2}#mermaid-svg-scaLfxhRgQcScuEg .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-scaLfxhRgQcScuEg .section2{fill:#fff400}#mermaid-svg-scaLfxhRgQcScuEg .section1,#mermaid-svg-scaLfxhRgQcScuEg .section3{fill:#fff;opacity:0.2}#mermaid-svg-scaLfxhRgQcScuEg .sectionTitle0{fill:#333}#mermaid-svg-scaLfxhRgQcScuEg .sectionTitle1{fill:#333}#mermaid-svg-scaLfxhRgQcScuEg .sectionTitle2{fill:#333}#mermaid-svg-scaLfxhRgQcScuEg .sectionTitle3{fill:#333}#mermaid-svg-scaLfxhRgQcScuEg .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-scaLfxhRgQcScuEg .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-scaLfxhRgQcScuEg .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-scaLfxhRgQcScuEg .grid path{stroke-width:0}#mermaid-svg-scaLfxhRgQcScuEg .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-scaLfxhRgQcScuEg .task{stroke-width:2}#mermaid-svg-scaLfxhRgQcScuEg .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-scaLfxhRgQcScuEg .taskText:not([font-size]){font-size:11px}#mermaid-svg-scaLfxhRgQcScuEg .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-scaLfxhRgQcScuEg .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-scaLfxhRgQcScuEg .task.clickable{cursor:pointer}#mermaid-svg-scaLfxhRgQcScuEg .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-scaLfxhRgQcScuEg .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-scaLfxhRgQcScuEg .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-scaLfxhRgQcScuEg .taskText0,#mermaid-svg-scaLfxhRgQcScuEg .taskText1,#mermaid-svg-scaLfxhRgQcScuEg .taskText2,#mermaid-svg-scaLfxhRgQcScuEg .taskText3{fill:#fff}#mermaid-svg-scaLfxhRgQcScuEg .task0,#mermaid-svg-scaLfxhRgQcScuEg .task1,#mermaid-svg-scaLfxhRgQcScuEg .task2,#mermaid-svg-scaLfxhRgQcScuEg .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-scaLfxhRgQcScuEg .taskTextOutside0,#mermaid-svg-scaLfxhRgQcScuEg .taskTextOutside2{fill:#000}#mermaid-svg-scaLfxhRgQcScuEg .taskTextOutside1,#mermaid-svg-scaLfxhRgQcScuEg .taskTextOutside3{fill:#000}#mermaid-svg-scaLfxhRgQcScuEg .active0,#mermaid-svg-scaLfxhRgQcScuEg .active1,#mermaid-svg-scaLfxhRgQcScuEg .active2,#mermaid-svg-scaLfxhRgQcScuEg .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-scaLfxhRgQcScuEg .activeText0,#mermaid-svg-scaLfxhRgQcScuEg .activeText1,#mermaid-svg-scaLfxhRgQcScuEg .activeText2,#mermaid-svg-scaLfxhRgQcScuEg .activeText3{fill:#000 !important}#mermaid-svg-scaLfxhRgQcScuEg .done0,#mermaid-svg-scaLfxhRgQcScuEg .done1,#mermaid-svg-scaLfxhRgQcScuEg .done2,#mermaid-svg-scaLfxhRgQcScuEg .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-scaLfxhRgQcScuEg .doneText0,#mermaid-svg-scaLfxhRgQcScuEg .doneText1,#mermaid-svg-scaLfxhRgQcScuEg .doneText2,#mermaid-svg-scaLfxhRgQcScuEg .doneText3{fill:#000 !important}#mermaid-svg-scaLfxhRgQcScuEg .crit0,#mermaid-svg-scaLfxhRgQcScuEg .crit1,#mermaid-svg-scaLfxhRgQcScuEg .crit2,#mermaid-svg-scaLfxhRgQcScuEg .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-scaLfxhRgQcScuEg .activeCrit0,#mermaid-svg-scaLfxhRgQcScuEg .activeCrit1,#mermaid-svg-scaLfxhRgQcScuEg .activeCrit2,#mermaid-svg-scaLfxhRgQcScuEg .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-scaLfxhRgQcScuEg .doneCrit0,#mermaid-svg-scaLfxhRgQcScuEg .doneCrit1,#mermaid-svg-scaLfxhRgQcScuEg .doneCrit2,#mermaid-svg-scaLfxhRgQcScuEg .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-scaLfxhRgQcScuEg .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-scaLfxhRgQcScuEg .milestoneText{font-style:italic}#mermaid-svg-scaLfxhRgQcScuEg .doneCritText0,#mermaid-svg-scaLfxhRgQcScuEg .doneCritText1,#mermaid-svg-scaLfxhRgQcScuEg .doneCritText2,#mermaid-svg-scaLfxhRgQcScuEg .doneCritText3{fill:#000 !important}#mermaid-svg-scaLfxhRgQcScuEg .activeCritText0,#mermaid-svg-scaLfxhRgQcScuEg .activeCritText1,#mermaid-svg-scaLfxhRgQcScuEg .activeCritText2,#mermaid-svg-scaLfxhRgQcScuEg .activeCritText3{fill:#000 !important}#mermaid-svg-scaLfxhRgQcScuEg .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-scaLfxhRgQcScuEg g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-scaLfxhRgQcScuEg g.classGroup text .title{font-weight:bolder}#mermaid-svg-scaLfxhRgQcScuEg g.clickable{cursor:pointer}#mermaid-svg-scaLfxhRgQcScuEg g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-scaLfxhRgQcScuEg g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-scaLfxhRgQcScuEg .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-scaLfxhRgQcScuEg .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-scaLfxhRgQcScuEg .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-scaLfxhRgQcScuEg .dashed-line{stroke-dasharray:3}#mermaid-svg-scaLfxhRgQcScuEg #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-scaLfxhRgQcScuEg #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-scaLfxhRgQcScuEg #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-scaLfxhRgQcScuEg #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-scaLfxhRgQcScuEg #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-scaLfxhRgQcScuEg #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-scaLfxhRgQcScuEg #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-scaLfxhRgQcScuEg #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-scaLfxhRgQcScuEg .commit-id,#mermaid-svg-scaLfxhRgQcScuEg .commit-msg,#mermaid-svg-scaLfxhRgQcScuEg .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-scaLfxhRgQcScuEg .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-scaLfxhRgQcScuEg .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-scaLfxhRgQcScuEg g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-scaLfxhRgQcScuEg g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-scaLfxhRgQcScuEg g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-scaLfxhRgQcScuEg g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-scaLfxhRgQcScuEg g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-scaLfxhRgQcScuEg g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-scaLfxhRgQcScuEg .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-scaLfxhRgQcScuEg .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-scaLfxhRgQcScuEg .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-scaLfxhRgQcScuEg .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-scaLfxhRgQcScuEg .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-scaLfxhRgQcScuEg .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-scaLfxhRgQcScuEg .edgeLabel text{fill:#333}#mermaid-svg-scaLfxhRgQcScuEg .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-scaLfxhRgQcScuEg .node circle.state-start{fill:black;stroke:black}#mermaid-svg-scaLfxhRgQcScuEg .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-scaLfxhRgQcScuEg #statediagram-barbEnd{fill:#9370db}#mermaid-svg-scaLfxhRgQcScuEg .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-scaLfxhRgQcScuEg .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-scaLfxhRgQcScuEg .statediagram-state .divider{stroke:#9370db}#mermaid-svg-scaLfxhRgQcScuEg .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-scaLfxhRgQcScuEg .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-scaLfxhRgQcScuEg .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-scaLfxhRgQcScuEg .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-scaLfxhRgQcScuEg .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-scaLfxhRgQcScuEg .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-scaLfxhRgQcScuEg .note-edge{stroke-dasharray:5}#mermaid-svg-scaLfxhRgQcScuEg .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-scaLfxhRgQcScuEg .error-icon{fill:#522}#mermaid-svg-scaLfxhRgQcScuEg .error-text{fill:#522;stroke:#522}#mermaid-svg-scaLfxhRgQcScuEg .edge-thickness-normal{stroke-width:2px}#mermaid-svg-scaLfxhRgQcScuEg .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-scaLfxhRgQcScuEg .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-scaLfxhRgQcScuEg .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-scaLfxhRgQcScuEg .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-scaLfxhRgQcScuEg .marker{fill:#333}#mermaid-svg-scaLfxhRgQcScuEg .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-scaLfxhRgQcScuEg {color: rgba(0, 0, 0, 0.75);font: ;}

ZMQ_SERVER
1..*
ZMQ_CLIENT
ZMQ_CLIENT
ZMQ_CLIENT

一个ZMQ_SERVER可以同时支持多个ZMQ_CLIENT的连接


Radio-dish 模式

#mermaid-svg-Fc7hyZQSp4gGsbIs .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-Fc7hyZQSp4gGsbIs .label text{fill:#333}#mermaid-svg-Fc7hyZQSp4gGsbIs .node rect,#mermaid-svg-Fc7hyZQSp4gGsbIs .node circle,#mermaid-svg-Fc7hyZQSp4gGsbIs .node ellipse,#mermaid-svg-Fc7hyZQSp4gGsbIs .node polygon,#mermaid-svg-Fc7hyZQSp4gGsbIs .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-Fc7hyZQSp4gGsbIs .node .label{text-align:center;fill:#333}#mermaid-svg-Fc7hyZQSp4gGsbIs .node.clickable{cursor:pointer}#mermaid-svg-Fc7hyZQSp4gGsbIs .arrowheadPath{fill:#333}#mermaid-svg-Fc7hyZQSp4gGsbIs .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-Fc7hyZQSp4gGsbIs .flowchart-link{stroke:#333;fill:none}#mermaid-svg-Fc7hyZQSp4gGsbIs .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-Fc7hyZQSp4gGsbIs .edgeLabel rect{opacity:0.9}#mermaid-svg-Fc7hyZQSp4gGsbIs .edgeLabel span{color:#333}#mermaid-svg-Fc7hyZQSp4gGsbIs .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-Fc7hyZQSp4gGsbIs .cluster text{fill:#333}#mermaid-svg-Fc7hyZQSp4gGsbIs div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-Fc7hyZQSp4gGsbIs .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-Fc7hyZQSp4gGsbIs text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-Fc7hyZQSp4gGsbIs .actor-line{stroke:grey}#mermaid-svg-Fc7hyZQSp4gGsbIs .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-Fc7hyZQSp4gGsbIs .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-Fc7hyZQSp4gGsbIs #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-Fc7hyZQSp4gGsbIs .sequenceNumber{fill:#fff}#mermaid-svg-Fc7hyZQSp4gGsbIs #sequencenumber{fill:#333}#mermaid-svg-Fc7hyZQSp4gGsbIs #crosshead path{fill:#333;stroke:#333}#mermaid-svg-Fc7hyZQSp4gGsbIs .messageText{fill:#333;stroke:#333}#mermaid-svg-Fc7hyZQSp4gGsbIs .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-Fc7hyZQSp4gGsbIs .labelText,#mermaid-svg-Fc7hyZQSp4gGsbIs .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-Fc7hyZQSp4gGsbIs .loopText,#mermaid-svg-Fc7hyZQSp4gGsbIs .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-Fc7hyZQSp4gGsbIs .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-Fc7hyZQSp4gGsbIs .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-Fc7hyZQSp4gGsbIs .noteText,#mermaid-svg-Fc7hyZQSp4gGsbIs .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-Fc7hyZQSp4gGsbIs .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-Fc7hyZQSp4gGsbIs .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-Fc7hyZQSp4gGsbIs .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-Fc7hyZQSp4gGsbIs .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-Fc7hyZQSp4gGsbIs .section{stroke:none;opacity:0.2}#mermaid-svg-Fc7hyZQSp4gGsbIs .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-Fc7hyZQSp4gGsbIs .section2{fill:#fff400}#mermaid-svg-Fc7hyZQSp4gGsbIs .section1,#mermaid-svg-Fc7hyZQSp4gGsbIs .section3{fill:#fff;opacity:0.2}#mermaid-svg-Fc7hyZQSp4gGsbIs .sectionTitle0{fill:#333}#mermaid-svg-Fc7hyZQSp4gGsbIs .sectionTitle1{fill:#333}#mermaid-svg-Fc7hyZQSp4gGsbIs .sectionTitle2{fill:#333}#mermaid-svg-Fc7hyZQSp4gGsbIs .sectionTitle3{fill:#333}#mermaid-svg-Fc7hyZQSp4gGsbIs .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-Fc7hyZQSp4gGsbIs .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-Fc7hyZQSp4gGsbIs .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-Fc7hyZQSp4gGsbIs .grid path{stroke-width:0}#mermaid-svg-Fc7hyZQSp4gGsbIs .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-Fc7hyZQSp4gGsbIs .task{stroke-width:2}#mermaid-svg-Fc7hyZQSp4gGsbIs .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-Fc7hyZQSp4gGsbIs .taskText:not([font-size]){font-size:11px}#mermaid-svg-Fc7hyZQSp4gGsbIs .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-Fc7hyZQSp4gGsbIs .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-Fc7hyZQSp4gGsbIs .task.clickable{cursor:pointer}#mermaid-svg-Fc7hyZQSp4gGsbIs .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-Fc7hyZQSp4gGsbIs .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-Fc7hyZQSp4gGsbIs .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-Fc7hyZQSp4gGsbIs .taskText0,#mermaid-svg-Fc7hyZQSp4gGsbIs .taskText1,#mermaid-svg-Fc7hyZQSp4gGsbIs .taskText2,#mermaid-svg-Fc7hyZQSp4gGsbIs .taskText3{fill:#fff}#mermaid-svg-Fc7hyZQSp4gGsbIs .task0,#mermaid-svg-Fc7hyZQSp4gGsbIs .task1,#mermaid-svg-Fc7hyZQSp4gGsbIs .task2,#mermaid-svg-Fc7hyZQSp4gGsbIs .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-Fc7hyZQSp4gGsbIs .taskTextOutside0,#mermaid-svg-Fc7hyZQSp4gGsbIs .taskTextOutside2{fill:#000}#mermaid-svg-Fc7hyZQSp4gGsbIs .taskTextOutside1,#mermaid-svg-Fc7hyZQSp4gGsbIs .taskTextOutside3{fill:#000}#mermaid-svg-Fc7hyZQSp4gGsbIs .active0,#mermaid-svg-Fc7hyZQSp4gGsbIs .active1,#mermaid-svg-Fc7hyZQSp4gGsbIs .active2,#mermaid-svg-Fc7hyZQSp4gGsbIs .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-Fc7hyZQSp4gGsbIs .activeText0,#mermaid-svg-Fc7hyZQSp4gGsbIs .activeText1,#mermaid-svg-Fc7hyZQSp4gGsbIs .activeText2,#mermaid-svg-Fc7hyZQSp4gGsbIs .activeText3{fill:#000 !important}#mermaid-svg-Fc7hyZQSp4gGsbIs .done0,#mermaid-svg-Fc7hyZQSp4gGsbIs .done1,#mermaid-svg-Fc7hyZQSp4gGsbIs .done2,#mermaid-svg-Fc7hyZQSp4gGsbIs .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-Fc7hyZQSp4gGsbIs .doneText0,#mermaid-svg-Fc7hyZQSp4gGsbIs .doneText1,#mermaid-svg-Fc7hyZQSp4gGsbIs .doneText2,#mermaid-svg-Fc7hyZQSp4gGsbIs .doneText3{fill:#000 !important}#mermaid-svg-Fc7hyZQSp4gGsbIs .crit0,#mermaid-svg-Fc7hyZQSp4gGsbIs .crit1,#mermaid-svg-Fc7hyZQSp4gGsbIs .crit2,#mermaid-svg-Fc7hyZQSp4gGsbIs .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-Fc7hyZQSp4gGsbIs .activeCrit0,#mermaid-svg-Fc7hyZQSp4gGsbIs .activeCrit1,#mermaid-svg-Fc7hyZQSp4gGsbIs .activeCrit2,#mermaid-svg-Fc7hyZQSp4gGsbIs .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-Fc7hyZQSp4gGsbIs .doneCrit0,#mermaid-svg-Fc7hyZQSp4gGsbIs .doneCrit1,#mermaid-svg-Fc7hyZQSp4gGsbIs .doneCrit2,#mermaid-svg-Fc7hyZQSp4gGsbIs .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-Fc7hyZQSp4gGsbIs .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-Fc7hyZQSp4gGsbIs .milestoneText{font-style:italic}#mermaid-svg-Fc7hyZQSp4gGsbIs .doneCritText0,#mermaid-svg-Fc7hyZQSp4gGsbIs .doneCritText1,#mermaid-svg-Fc7hyZQSp4gGsbIs .doneCritText2,#mermaid-svg-Fc7hyZQSp4gGsbIs .doneCritText3{fill:#000 !important}#mermaid-svg-Fc7hyZQSp4gGsbIs .activeCritText0,#mermaid-svg-Fc7hyZQSp4gGsbIs .activeCritText1,#mermaid-svg-Fc7hyZQSp4gGsbIs .activeCritText2,#mermaid-svg-Fc7hyZQSp4gGsbIs .activeCritText3{fill:#000 !important}#mermaid-svg-Fc7hyZQSp4gGsbIs .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-Fc7hyZQSp4gGsbIs g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-Fc7hyZQSp4gGsbIs g.classGroup text .title{font-weight:bolder}#mermaid-svg-Fc7hyZQSp4gGsbIs g.clickable{cursor:pointer}#mermaid-svg-Fc7hyZQSp4gGsbIs g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-Fc7hyZQSp4gGsbIs g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-Fc7hyZQSp4gGsbIs .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-Fc7hyZQSp4gGsbIs .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-Fc7hyZQSp4gGsbIs .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-Fc7hyZQSp4gGsbIs .dashed-line{stroke-dasharray:3}#mermaid-svg-Fc7hyZQSp4gGsbIs #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-Fc7hyZQSp4gGsbIs #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-Fc7hyZQSp4gGsbIs #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-Fc7hyZQSp4gGsbIs #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-Fc7hyZQSp4gGsbIs #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-Fc7hyZQSp4gGsbIs #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-Fc7hyZQSp4gGsbIs #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-Fc7hyZQSp4gGsbIs #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-Fc7hyZQSp4gGsbIs .commit-id,#mermaid-svg-Fc7hyZQSp4gGsbIs .commit-msg,#mermaid-svg-Fc7hyZQSp4gGsbIs .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-Fc7hyZQSp4gGsbIs .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-Fc7hyZQSp4gGsbIs .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-Fc7hyZQSp4gGsbIs g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-Fc7hyZQSp4gGsbIs g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-Fc7hyZQSp4gGsbIs g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-Fc7hyZQSp4gGsbIs g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-Fc7hyZQSp4gGsbIs g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-Fc7hyZQSp4gGsbIs g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-Fc7hyZQSp4gGsbIs .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-Fc7hyZQSp4gGsbIs .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-Fc7hyZQSp4gGsbIs .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-Fc7hyZQSp4gGsbIs .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-Fc7hyZQSp4gGsbIs .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-Fc7hyZQSp4gGsbIs .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-Fc7hyZQSp4gGsbIs .edgeLabel text{fill:#333}#mermaid-svg-Fc7hyZQSp4gGsbIs .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-Fc7hyZQSp4gGsbIs .node circle.state-start{fill:black;stroke:black}#mermaid-svg-Fc7hyZQSp4gGsbIs .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-Fc7hyZQSp4gGsbIs #statediagram-barbEnd{fill:#9370db}#mermaid-svg-Fc7hyZQSp4gGsbIs .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-Fc7hyZQSp4gGsbIs .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-Fc7hyZQSp4gGsbIs .statediagram-state .divider{stroke:#9370db}#mermaid-svg-Fc7hyZQSp4gGsbIs .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-Fc7hyZQSp4gGsbIs .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-Fc7hyZQSp4gGsbIs .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-Fc7hyZQSp4gGsbIs .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-Fc7hyZQSp4gGsbIs .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-Fc7hyZQSp4gGsbIs .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-Fc7hyZQSp4gGsbIs .note-edge{stroke-dasharray:5}#mermaid-svg-Fc7hyZQSp4gGsbIs .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-Fc7hyZQSp4gGsbIs .error-icon{fill:#522}#mermaid-svg-Fc7hyZQSp4gGsbIs .error-text{fill:#522;stroke:#522}#mermaid-svg-Fc7hyZQSp4gGsbIs .edge-thickness-normal{stroke-width:2px}#mermaid-svg-Fc7hyZQSp4gGsbIs .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-Fc7hyZQSp4gGsbIs .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-Fc7hyZQSp4gGsbIs .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-Fc7hyZQSp4gGsbIs .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-Fc7hyZQSp4gGsbIs .marker{fill:#333}#mermaid-svg-Fc7hyZQSp4gGsbIs .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-Fc7hyZQSp4gGsbIs {color: rgba(0, 0, 0, 0.75);font: ;}

ZMQ_RADIO
1..*
ZMQ_DISH
ZMQ_DISH
ZMQ_DISH

一个ZMQ_RADIO端可以同时支持多个ZMQ_DISH端的加入


Pub-Sub模式

pub-sub模式可以衍生出很多模式,主要有如下几种,由于xpub/xspub的出现,可以让pub和sub之间有无数个broker结点

pub-sub

#mermaid-svg-D6IqxfQvUzHl2D5m .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-D6IqxfQvUzHl2D5m .label text{fill:#333}#mermaid-svg-D6IqxfQvUzHl2D5m .node rect,#mermaid-svg-D6IqxfQvUzHl2D5m .node circle,#mermaid-svg-D6IqxfQvUzHl2D5m .node ellipse,#mermaid-svg-D6IqxfQvUzHl2D5m .node polygon,#mermaid-svg-D6IqxfQvUzHl2D5m .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-D6IqxfQvUzHl2D5m .node .label{text-align:center;fill:#333}#mermaid-svg-D6IqxfQvUzHl2D5m .node.clickable{cursor:pointer}#mermaid-svg-D6IqxfQvUzHl2D5m .arrowheadPath{fill:#333}#mermaid-svg-D6IqxfQvUzHl2D5m .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-D6IqxfQvUzHl2D5m .flowchart-link{stroke:#333;fill:none}#mermaid-svg-D6IqxfQvUzHl2D5m .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-D6IqxfQvUzHl2D5m .edgeLabel rect{opacity:0.9}#mermaid-svg-D6IqxfQvUzHl2D5m .edgeLabel span{color:#333}#mermaid-svg-D6IqxfQvUzHl2D5m .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-D6IqxfQvUzHl2D5m .cluster text{fill:#333}#mermaid-svg-D6IqxfQvUzHl2D5m div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-D6IqxfQvUzHl2D5m .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-D6IqxfQvUzHl2D5m text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-D6IqxfQvUzHl2D5m .actor-line{stroke:grey}#mermaid-svg-D6IqxfQvUzHl2D5m .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-D6IqxfQvUzHl2D5m .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-D6IqxfQvUzHl2D5m #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-D6IqxfQvUzHl2D5m .sequenceNumber{fill:#fff}#mermaid-svg-D6IqxfQvUzHl2D5m #sequencenumber{fill:#333}#mermaid-svg-D6IqxfQvUzHl2D5m #crosshead path{fill:#333;stroke:#333}#mermaid-svg-D6IqxfQvUzHl2D5m .messageText{fill:#333;stroke:#333}#mermaid-svg-D6IqxfQvUzHl2D5m .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-D6IqxfQvUzHl2D5m .labelText,#mermaid-svg-D6IqxfQvUzHl2D5m .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-D6IqxfQvUzHl2D5m .loopText,#mermaid-svg-D6IqxfQvUzHl2D5m .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-D6IqxfQvUzHl2D5m .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-D6IqxfQvUzHl2D5m .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-D6IqxfQvUzHl2D5m .noteText,#mermaid-svg-D6IqxfQvUzHl2D5m .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-D6IqxfQvUzHl2D5m .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-D6IqxfQvUzHl2D5m .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-D6IqxfQvUzHl2D5m .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-D6IqxfQvUzHl2D5m .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-D6IqxfQvUzHl2D5m .section{stroke:none;opacity:0.2}#mermaid-svg-D6IqxfQvUzHl2D5m .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-D6IqxfQvUzHl2D5m .section2{fill:#fff400}#mermaid-svg-D6IqxfQvUzHl2D5m .section1,#mermaid-svg-D6IqxfQvUzHl2D5m .section3{fill:#fff;opacity:0.2}#mermaid-svg-D6IqxfQvUzHl2D5m .sectionTitle0{fill:#333}#mermaid-svg-D6IqxfQvUzHl2D5m .sectionTitle1{fill:#333}#mermaid-svg-D6IqxfQvUzHl2D5m .sectionTitle2{fill:#333}#mermaid-svg-D6IqxfQvUzHl2D5m .sectionTitle3{fill:#333}#mermaid-svg-D6IqxfQvUzHl2D5m .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-D6IqxfQvUzHl2D5m .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-D6IqxfQvUzHl2D5m .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-D6IqxfQvUzHl2D5m .grid path{stroke-width:0}#mermaid-svg-D6IqxfQvUzHl2D5m .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-D6IqxfQvUzHl2D5m .task{stroke-width:2}#mermaid-svg-D6IqxfQvUzHl2D5m .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-D6IqxfQvUzHl2D5m .taskText:not([font-size]){font-size:11px}#mermaid-svg-D6IqxfQvUzHl2D5m .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-D6IqxfQvUzHl2D5m .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-D6IqxfQvUzHl2D5m .task.clickable{cursor:pointer}#mermaid-svg-D6IqxfQvUzHl2D5m .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-D6IqxfQvUzHl2D5m .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-D6IqxfQvUzHl2D5m .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-D6IqxfQvUzHl2D5m .taskText0,#mermaid-svg-D6IqxfQvUzHl2D5m .taskText1,#mermaid-svg-D6IqxfQvUzHl2D5m .taskText2,#mermaid-svg-D6IqxfQvUzHl2D5m .taskText3{fill:#fff}#mermaid-svg-D6IqxfQvUzHl2D5m .task0,#mermaid-svg-D6IqxfQvUzHl2D5m .task1,#mermaid-svg-D6IqxfQvUzHl2D5m .task2,#mermaid-svg-D6IqxfQvUzHl2D5m .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-D6IqxfQvUzHl2D5m .taskTextOutside0,#mermaid-svg-D6IqxfQvUzHl2D5m .taskTextOutside2{fill:#000}#mermaid-svg-D6IqxfQvUzHl2D5m .taskTextOutside1,#mermaid-svg-D6IqxfQvUzHl2D5m .taskTextOutside3{fill:#000}#mermaid-svg-D6IqxfQvUzHl2D5m .active0,#mermaid-svg-D6IqxfQvUzHl2D5m .active1,#mermaid-svg-D6IqxfQvUzHl2D5m .active2,#mermaid-svg-D6IqxfQvUzHl2D5m .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-D6IqxfQvUzHl2D5m .activeText0,#mermaid-svg-D6IqxfQvUzHl2D5m .activeText1,#mermaid-svg-D6IqxfQvUzHl2D5m .activeText2,#mermaid-svg-D6IqxfQvUzHl2D5m .activeText3{fill:#000 !important}#mermaid-svg-D6IqxfQvUzHl2D5m .done0,#mermaid-svg-D6IqxfQvUzHl2D5m .done1,#mermaid-svg-D6IqxfQvUzHl2D5m .done2,#mermaid-svg-D6IqxfQvUzHl2D5m .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-D6IqxfQvUzHl2D5m .doneText0,#mermaid-svg-D6IqxfQvUzHl2D5m .doneText1,#mermaid-svg-D6IqxfQvUzHl2D5m .doneText2,#mermaid-svg-D6IqxfQvUzHl2D5m .doneText3{fill:#000 !important}#mermaid-svg-D6IqxfQvUzHl2D5m .crit0,#mermaid-svg-D6IqxfQvUzHl2D5m .crit1,#mermaid-svg-D6IqxfQvUzHl2D5m .crit2,#mermaid-svg-D6IqxfQvUzHl2D5m .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-D6IqxfQvUzHl2D5m .activeCrit0,#mermaid-svg-D6IqxfQvUzHl2D5m .activeCrit1,#mermaid-svg-D6IqxfQvUzHl2D5m .activeCrit2,#mermaid-svg-D6IqxfQvUzHl2D5m .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-D6IqxfQvUzHl2D5m .doneCrit0,#mermaid-svg-D6IqxfQvUzHl2D5m .doneCrit1,#mermaid-svg-D6IqxfQvUzHl2D5m .doneCrit2,#mermaid-svg-D6IqxfQvUzHl2D5m .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-D6IqxfQvUzHl2D5m .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-D6IqxfQvUzHl2D5m .milestoneText{font-style:italic}#mermaid-svg-D6IqxfQvUzHl2D5m .doneCritText0,#mermaid-svg-D6IqxfQvUzHl2D5m .doneCritText1,#mermaid-svg-D6IqxfQvUzHl2D5m .doneCritText2,#mermaid-svg-D6IqxfQvUzHl2D5m .doneCritText3{fill:#000 !important}#mermaid-svg-D6IqxfQvUzHl2D5m .activeCritText0,#mermaid-svg-D6IqxfQvUzHl2D5m .activeCritText1,#mermaid-svg-D6IqxfQvUzHl2D5m .activeCritText2,#mermaid-svg-D6IqxfQvUzHl2D5m .activeCritText3{fill:#000 !important}#mermaid-svg-D6IqxfQvUzHl2D5m .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-D6IqxfQvUzHl2D5m g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-D6IqxfQvUzHl2D5m g.classGroup text .title{font-weight:bolder}#mermaid-svg-D6IqxfQvUzHl2D5m g.clickable{cursor:pointer}#mermaid-svg-D6IqxfQvUzHl2D5m g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-D6IqxfQvUzHl2D5m g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-D6IqxfQvUzHl2D5m .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-D6IqxfQvUzHl2D5m .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-D6IqxfQvUzHl2D5m .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-D6IqxfQvUzHl2D5m .dashed-line{stroke-dasharray:3}#mermaid-svg-D6IqxfQvUzHl2D5m #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-D6IqxfQvUzHl2D5m #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-D6IqxfQvUzHl2D5m #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-D6IqxfQvUzHl2D5m #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-D6IqxfQvUzHl2D5m #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-D6IqxfQvUzHl2D5m #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-D6IqxfQvUzHl2D5m #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-D6IqxfQvUzHl2D5m #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-D6IqxfQvUzHl2D5m .commit-id,#mermaid-svg-D6IqxfQvUzHl2D5m .commit-msg,#mermaid-svg-D6IqxfQvUzHl2D5m .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-D6IqxfQvUzHl2D5m .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-D6IqxfQvUzHl2D5m .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-D6IqxfQvUzHl2D5m g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-D6IqxfQvUzHl2D5m g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-D6IqxfQvUzHl2D5m g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-D6IqxfQvUzHl2D5m g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-D6IqxfQvUzHl2D5m g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-D6IqxfQvUzHl2D5m g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-D6IqxfQvUzHl2D5m .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-D6IqxfQvUzHl2D5m .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-D6IqxfQvUzHl2D5m .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-D6IqxfQvUzHl2D5m .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-D6IqxfQvUzHl2D5m .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-D6IqxfQvUzHl2D5m .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-D6IqxfQvUzHl2D5m .edgeLabel text{fill:#333}#mermaid-svg-D6IqxfQvUzHl2D5m .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-D6IqxfQvUzHl2D5m .node circle.state-start{fill:black;stroke:black}#mermaid-svg-D6IqxfQvUzHl2D5m .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-D6IqxfQvUzHl2D5m #statediagram-barbEnd{fill:#9370db}#mermaid-svg-D6IqxfQvUzHl2D5m .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-D6IqxfQvUzHl2D5m .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-D6IqxfQvUzHl2D5m .statediagram-state .divider{stroke:#9370db}#mermaid-svg-D6IqxfQvUzHl2D5m .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-D6IqxfQvUzHl2D5m .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-D6IqxfQvUzHl2D5m .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-D6IqxfQvUzHl2D5m .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-D6IqxfQvUzHl2D5m .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-D6IqxfQvUzHl2D5m .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-D6IqxfQvUzHl2D5m .note-edge{stroke-dasharray:5}#mermaid-svg-D6IqxfQvUzHl2D5m .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-D6IqxfQvUzHl2D5m .error-icon{fill:#522}#mermaid-svg-D6IqxfQvUzHl2D5m .error-text{fill:#522;stroke:#522}#mermaid-svg-D6IqxfQvUzHl2D5m .edge-thickness-normal{stroke-width:2px}#mermaid-svg-D6IqxfQvUzHl2D5m .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-D6IqxfQvUzHl2D5m .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-D6IqxfQvUzHl2D5m .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-D6IqxfQvUzHl2D5m .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-D6IqxfQvUzHl2D5m .marker{fill:#333}#mermaid-svg-D6IqxfQvUzHl2D5m .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-D6IqxfQvUzHl2D5m {color: rgba(0, 0, 0, 0.75);font: ;}

ZMQ_PUB
*..*
ZMQ_PUB
ZMQ_PUB
1..*
ZMQ_SUB
ZMQ_PUB
1..*
ZMQ_SUB
  1. 一个ZMQ_PUB端可以同时支持多个ZMQ_SUB端的订阅
  2. 一个ZMQ_SUB端可以同时连接多个ZMQ_PUB端
  3. ZMQ_PUB和ZMQ_SUB之间是many-to-many 的关系
  4. 一般情况下,一个ZMQ_PUB对应多个ZMQ_SUB

pub-xsub

#mermaid-svg-eAssleZzTs2gbmjF .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-eAssleZzTs2gbmjF .label text{fill:#333}#mermaid-svg-eAssleZzTs2gbmjF .node rect,#mermaid-svg-eAssleZzTs2gbmjF .node circle,#mermaid-svg-eAssleZzTs2gbmjF .node ellipse,#mermaid-svg-eAssleZzTs2gbmjF .node polygon,#mermaid-svg-eAssleZzTs2gbmjF .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-eAssleZzTs2gbmjF .node .label{text-align:center;fill:#333}#mermaid-svg-eAssleZzTs2gbmjF .node.clickable{cursor:pointer}#mermaid-svg-eAssleZzTs2gbmjF .arrowheadPath{fill:#333}#mermaid-svg-eAssleZzTs2gbmjF .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-eAssleZzTs2gbmjF .flowchart-link{stroke:#333;fill:none}#mermaid-svg-eAssleZzTs2gbmjF .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-eAssleZzTs2gbmjF .edgeLabel rect{opacity:0.9}#mermaid-svg-eAssleZzTs2gbmjF .edgeLabel span{color:#333}#mermaid-svg-eAssleZzTs2gbmjF .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-eAssleZzTs2gbmjF .cluster text{fill:#333}#mermaid-svg-eAssleZzTs2gbmjF div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-eAssleZzTs2gbmjF .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-eAssleZzTs2gbmjF text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-eAssleZzTs2gbmjF .actor-line{stroke:grey}#mermaid-svg-eAssleZzTs2gbmjF .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-eAssleZzTs2gbmjF .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-eAssleZzTs2gbmjF #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-eAssleZzTs2gbmjF .sequenceNumber{fill:#fff}#mermaid-svg-eAssleZzTs2gbmjF #sequencenumber{fill:#333}#mermaid-svg-eAssleZzTs2gbmjF #crosshead path{fill:#333;stroke:#333}#mermaid-svg-eAssleZzTs2gbmjF .messageText{fill:#333;stroke:#333}#mermaid-svg-eAssleZzTs2gbmjF .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-eAssleZzTs2gbmjF .labelText,#mermaid-svg-eAssleZzTs2gbmjF .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-eAssleZzTs2gbmjF .loopText,#mermaid-svg-eAssleZzTs2gbmjF .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-eAssleZzTs2gbmjF .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-eAssleZzTs2gbmjF .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-eAssleZzTs2gbmjF .noteText,#mermaid-svg-eAssleZzTs2gbmjF .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-eAssleZzTs2gbmjF .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-eAssleZzTs2gbmjF .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-eAssleZzTs2gbmjF .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-eAssleZzTs2gbmjF .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-eAssleZzTs2gbmjF .section{stroke:none;opacity:0.2}#mermaid-svg-eAssleZzTs2gbmjF .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-eAssleZzTs2gbmjF .section2{fill:#fff400}#mermaid-svg-eAssleZzTs2gbmjF .section1,#mermaid-svg-eAssleZzTs2gbmjF .section3{fill:#fff;opacity:0.2}#mermaid-svg-eAssleZzTs2gbmjF .sectionTitle0{fill:#333}#mermaid-svg-eAssleZzTs2gbmjF .sectionTitle1{fill:#333}#mermaid-svg-eAssleZzTs2gbmjF .sectionTitle2{fill:#333}#mermaid-svg-eAssleZzTs2gbmjF .sectionTitle3{fill:#333}#mermaid-svg-eAssleZzTs2gbmjF .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-eAssleZzTs2gbmjF .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-eAssleZzTs2gbmjF .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-eAssleZzTs2gbmjF .grid path{stroke-width:0}#mermaid-svg-eAssleZzTs2gbmjF .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-eAssleZzTs2gbmjF .task{stroke-width:2}#mermaid-svg-eAssleZzTs2gbmjF .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-eAssleZzTs2gbmjF .taskText:not([font-size]){font-size:11px}#mermaid-svg-eAssleZzTs2gbmjF .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-eAssleZzTs2gbmjF .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-eAssleZzTs2gbmjF .task.clickable{cursor:pointer}#mermaid-svg-eAssleZzTs2gbmjF .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-eAssleZzTs2gbmjF .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-eAssleZzTs2gbmjF .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-eAssleZzTs2gbmjF .taskText0,#mermaid-svg-eAssleZzTs2gbmjF .taskText1,#mermaid-svg-eAssleZzTs2gbmjF .taskText2,#mermaid-svg-eAssleZzTs2gbmjF .taskText3{fill:#fff}#mermaid-svg-eAssleZzTs2gbmjF .task0,#mermaid-svg-eAssleZzTs2gbmjF .task1,#mermaid-svg-eAssleZzTs2gbmjF .task2,#mermaid-svg-eAssleZzTs2gbmjF .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-eAssleZzTs2gbmjF .taskTextOutside0,#mermaid-svg-eAssleZzTs2gbmjF .taskTextOutside2{fill:#000}#mermaid-svg-eAssleZzTs2gbmjF .taskTextOutside1,#mermaid-svg-eAssleZzTs2gbmjF .taskTextOutside3{fill:#000}#mermaid-svg-eAssleZzTs2gbmjF .active0,#mermaid-svg-eAssleZzTs2gbmjF .active1,#mermaid-svg-eAssleZzTs2gbmjF .active2,#mermaid-svg-eAssleZzTs2gbmjF .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-eAssleZzTs2gbmjF .activeText0,#mermaid-svg-eAssleZzTs2gbmjF .activeText1,#mermaid-svg-eAssleZzTs2gbmjF .activeText2,#mermaid-svg-eAssleZzTs2gbmjF .activeText3{fill:#000 !important}#mermaid-svg-eAssleZzTs2gbmjF .done0,#mermaid-svg-eAssleZzTs2gbmjF .done1,#mermaid-svg-eAssleZzTs2gbmjF .done2,#mermaid-svg-eAssleZzTs2gbmjF .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-eAssleZzTs2gbmjF .doneText0,#mermaid-svg-eAssleZzTs2gbmjF .doneText1,#mermaid-svg-eAssleZzTs2gbmjF .doneText2,#mermaid-svg-eAssleZzTs2gbmjF .doneText3{fill:#000 !important}#mermaid-svg-eAssleZzTs2gbmjF .crit0,#mermaid-svg-eAssleZzTs2gbmjF .crit1,#mermaid-svg-eAssleZzTs2gbmjF .crit2,#mermaid-svg-eAssleZzTs2gbmjF .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-eAssleZzTs2gbmjF .activeCrit0,#mermaid-svg-eAssleZzTs2gbmjF .activeCrit1,#mermaid-svg-eAssleZzTs2gbmjF .activeCrit2,#mermaid-svg-eAssleZzTs2gbmjF .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-eAssleZzTs2gbmjF .doneCrit0,#mermaid-svg-eAssleZzTs2gbmjF .doneCrit1,#mermaid-svg-eAssleZzTs2gbmjF .doneCrit2,#mermaid-svg-eAssleZzTs2gbmjF .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-eAssleZzTs2gbmjF .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-eAssleZzTs2gbmjF .milestoneText{font-style:italic}#mermaid-svg-eAssleZzTs2gbmjF .doneCritText0,#mermaid-svg-eAssleZzTs2gbmjF .doneCritText1,#mermaid-svg-eAssleZzTs2gbmjF .doneCritText2,#mermaid-svg-eAssleZzTs2gbmjF .doneCritText3{fill:#000 !important}#mermaid-svg-eAssleZzTs2gbmjF .activeCritText0,#mermaid-svg-eAssleZzTs2gbmjF .activeCritText1,#mermaid-svg-eAssleZzTs2gbmjF .activeCritText2,#mermaid-svg-eAssleZzTs2gbmjF .activeCritText3{fill:#000 !important}#mermaid-svg-eAssleZzTs2gbmjF .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-eAssleZzTs2gbmjF g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-eAssleZzTs2gbmjF g.classGroup text .title{font-weight:bolder}#mermaid-svg-eAssleZzTs2gbmjF g.clickable{cursor:pointer}#mermaid-svg-eAssleZzTs2gbmjF g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-eAssleZzTs2gbmjF g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-eAssleZzTs2gbmjF .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-eAssleZzTs2gbmjF .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-eAssleZzTs2gbmjF .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-eAssleZzTs2gbmjF .dashed-line{stroke-dasharray:3}#mermaid-svg-eAssleZzTs2gbmjF #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-eAssleZzTs2gbmjF #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-eAssleZzTs2gbmjF #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-eAssleZzTs2gbmjF #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-eAssleZzTs2gbmjF #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-eAssleZzTs2gbmjF #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-eAssleZzTs2gbmjF #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-eAssleZzTs2gbmjF #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-eAssleZzTs2gbmjF .commit-id,#mermaid-svg-eAssleZzTs2gbmjF .commit-msg,#mermaid-svg-eAssleZzTs2gbmjF .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-eAssleZzTs2gbmjF .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-eAssleZzTs2gbmjF .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-eAssleZzTs2gbmjF g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-eAssleZzTs2gbmjF g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-eAssleZzTs2gbmjF g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-eAssleZzTs2gbmjF g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-eAssleZzTs2gbmjF g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-eAssleZzTs2gbmjF g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-eAssleZzTs2gbmjF .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-eAssleZzTs2gbmjF .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-eAssleZzTs2gbmjF .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-eAssleZzTs2gbmjF .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-eAssleZzTs2gbmjF .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-eAssleZzTs2gbmjF .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-eAssleZzTs2gbmjF .edgeLabel text{fill:#333}#mermaid-svg-eAssleZzTs2gbmjF .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-eAssleZzTs2gbmjF .node circle.state-start{fill:black;stroke:black}#mermaid-svg-eAssleZzTs2gbmjF .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-eAssleZzTs2gbmjF #statediagram-barbEnd{fill:#9370db}#mermaid-svg-eAssleZzTs2gbmjF .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-eAssleZzTs2gbmjF .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-eAssleZzTs2gbmjF .statediagram-state .divider{stroke:#9370db}#mermaid-svg-eAssleZzTs2gbmjF .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-eAssleZzTs2gbmjF .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-eAssleZzTs2gbmjF .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-eAssleZzTs2gbmjF .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-eAssleZzTs2gbmjF .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-eAssleZzTs2gbmjF .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-eAssleZzTs2gbmjF .note-edge{stroke-dasharray:5}#mermaid-svg-eAssleZzTs2gbmjF .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-eAssleZzTs2gbmjF .error-icon{fill:#522}#mermaid-svg-eAssleZzTs2gbmjF .error-text{fill:#522;stroke:#522}#mermaid-svg-eAssleZzTs2gbmjF .edge-thickness-normal{stroke-width:2px}#mermaid-svg-eAssleZzTs2gbmjF .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-eAssleZzTs2gbmjF .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-eAssleZzTs2gbmjF .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-eAssleZzTs2gbmjF .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-eAssleZzTs2gbmjF .marker{fill:#333}#mermaid-svg-eAssleZzTs2gbmjF .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-eAssleZzTs2gbmjF {color: rgba(0, 0, 0, 0.75);font: ;}

ZMQ_PUB
*..*
ZMQ_XSUB
ZMQ_PUB
1..*
ZMQ_XSUB
ZMQ_PUB
1..*
ZMQ_XSUB
  1. 一个ZMQ_PUB端可以同时支持多个ZMQ_XSUB端的订阅
  2. 一个ZMQ_XSUB端可以同时连接多个ZMQ_PUB端
  3. ZMQ_PUB和ZMQ_XSUB之间是many-to-many 的关系
  4. 一般情况下,一个ZMQ_PUB对应多个ZMQ_XSUB

xpub-xsub

#mermaid-svg-hAWRCMAxBwZsq0pm .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-hAWRCMAxBwZsq0pm .label text{fill:#333}#mermaid-svg-hAWRCMAxBwZsq0pm .node rect,#mermaid-svg-hAWRCMAxBwZsq0pm .node circle,#mermaid-svg-hAWRCMAxBwZsq0pm .node ellipse,#mermaid-svg-hAWRCMAxBwZsq0pm .node polygon,#mermaid-svg-hAWRCMAxBwZsq0pm .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-hAWRCMAxBwZsq0pm .node .label{text-align:center;fill:#333}#mermaid-svg-hAWRCMAxBwZsq0pm .node.clickable{cursor:pointer}#mermaid-svg-hAWRCMAxBwZsq0pm .arrowheadPath{fill:#333}#mermaid-svg-hAWRCMAxBwZsq0pm .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-hAWRCMAxBwZsq0pm .flowchart-link{stroke:#333;fill:none}#mermaid-svg-hAWRCMAxBwZsq0pm .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-hAWRCMAxBwZsq0pm .edgeLabel rect{opacity:0.9}#mermaid-svg-hAWRCMAxBwZsq0pm .edgeLabel span{color:#333}#mermaid-svg-hAWRCMAxBwZsq0pm .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-hAWRCMAxBwZsq0pm .cluster text{fill:#333}#mermaid-svg-hAWRCMAxBwZsq0pm div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-hAWRCMAxBwZsq0pm .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-hAWRCMAxBwZsq0pm text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-hAWRCMAxBwZsq0pm .actor-line{stroke:grey}#mermaid-svg-hAWRCMAxBwZsq0pm .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-hAWRCMAxBwZsq0pm .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-hAWRCMAxBwZsq0pm #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-hAWRCMAxBwZsq0pm .sequenceNumber{fill:#fff}#mermaid-svg-hAWRCMAxBwZsq0pm #sequencenumber{fill:#333}#mermaid-svg-hAWRCMAxBwZsq0pm #crosshead path{fill:#333;stroke:#333}#mermaid-svg-hAWRCMAxBwZsq0pm .messageText{fill:#333;stroke:#333}#mermaid-svg-hAWRCMAxBwZsq0pm .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-hAWRCMAxBwZsq0pm .labelText,#mermaid-svg-hAWRCMAxBwZsq0pm .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-hAWRCMAxBwZsq0pm .loopText,#mermaid-svg-hAWRCMAxBwZsq0pm .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-hAWRCMAxBwZsq0pm .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-hAWRCMAxBwZsq0pm .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-hAWRCMAxBwZsq0pm .noteText,#mermaid-svg-hAWRCMAxBwZsq0pm .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-hAWRCMAxBwZsq0pm .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-hAWRCMAxBwZsq0pm .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-hAWRCMAxBwZsq0pm .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-hAWRCMAxBwZsq0pm .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hAWRCMAxBwZsq0pm .section{stroke:none;opacity:0.2}#mermaid-svg-hAWRCMAxBwZsq0pm .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-hAWRCMAxBwZsq0pm .section2{fill:#fff400}#mermaid-svg-hAWRCMAxBwZsq0pm .section1,#mermaid-svg-hAWRCMAxBwZsq0pm .section3{fill:#fff;opacity:0.2}#mermaid-svg-hAWRCMAxBwZsq0pm .sectionTitle0{fill:#333}#mermaid-svg-hAWRCMAxBwZsq0pm .sectionTitle1{fill:#333}#mermaid-svg-hAWRCMAxBwZsq0pm .sectionTitle2{fill:#333}#mermaid-svg-hAWRCMAxBwZsq0pm .sectionTitle3{fill:#333}#mermaid-svg-hAWRCMAxBwZsq0pm .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hAWRCMAxBwZsq0pm .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-hAWRCMAxBwZsq0pm .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hAWRCMAxBwZsq0pm .grid path{stroke-width:0}#mermaid-svg-hAWRCMAxBwZsq0pm .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-hAWRCMAxBwZsq0pm .task{stroke-width:2}#mermaid-svg-hAWRCMAxBwZsq0pm .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hAWRCMAxBwZsq0pm .taskText:not([font-size]){font-size:11px}#mermaid-svg-hAWRCMAxBwZsq0pm .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hAWRCMAxBwZsq0pm .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-hAWRCMAxBwZsq0pm .task.clickable{cursor:pointer}#mermaid-svg-hAWRCMAxBwZsq0pm .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-hAWRCMAxBwZsq0pm .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-hAWRCMAxBwZsq0pm .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-hAWRCMAxBwZsq0pm .taskText0,#mermaid-svg-hAWRCMAxBwZsq0pm .taskText1,#mermaid-svg-hAWRCMAxBwZsq0pm .taskText2,#mermaid-svg-hAWRCMAxBwZsq0pm .taskText3{fill:#fff}#mermaid-svg-hAWRCMAxBwZsq0pm .task0,#mermaid-svg-hAWRCMAxBwZsq0pm .task1,#mermaid-svg-hAWRCMAxBwZsq0pm .task2,#mermaid-svg-hAWRCMAxBwZsq0pm .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-hAWRCMAxBwZsq0pm .taskTextOutside0,#mermaid-svg-hAWRCMAxBwZsq0pm .taskTextOutside2{fill:#000}#mermaid-svg-hAWRCMAxBwZsq0pm .taskTextOutside1,#mermaid-svg-hAWRCMAxBwZsq0pm .taskTextOutside3{fill:#000}#mermaid-svg-hAWRCMAxBwZsq0pm .active0,#mermaid-svg-hAWRCMAxBwZsq0pm .active1,#mermaid-svg-hAWRCMAxBwZsq0pm .active2,#mermaid-svg-hAWRCMAxBwZsq0pm .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-hAWRCMAxBwZsq0pm .activeText0,#mermaid-svg-hAWRCMAxBwZsq0pm .activeText1,#mermaid-svg-hAWRCMAxBwZsq0pm .activeText2,#mermaid-svg-hAWRCMAxBwZsq0pm .activeText3{fill:#000 !important}#mermaid-svg-hAWRCMAxBwZsq0pm .done0,#mermaid-svg-hAWRCMAxBwZsq0pm .done1,#mermaid-svg-hAWRCMAxBwZsq0pm .done2,#mermaid-svg-hAWRCMAxBwZsq0pm .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-hAWRCMAxBwZsq0pm .doneText0,#mermaid-svg-hAWRCMAxBwZsq0pm .doneText1,#mermaid-svg-hAWRCMAxBwZsq0pm .doneText2,#mermaid-svg-hAWRCMAxBwZsq0pm .doneText3{fill:#000 !important}#mermaid-svg-hAWRCMAxBwZsq0pm .crit0,#mermaid-svg-hAWRCMAxBwZsq0pm .crit1,#mermaid-svg-hAWRCMAxBwZsq0pm .crit2,#mermaid-svg-hAWRCMAxBwZsq0pm .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-hAWRCMAxBwZsq0pm .activeCrit0,#mermaid-svg-hAWRCMAxBwZsq0pm .activeCrit1,#mermaid-svg-hAWRCMAxBwZsq0pm .activeCrit2,#mermaid-svg-hAWRCMAxBwZsq0pm .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-hAWRCMAxBwZsq0pm .doneCrit0,#mermaid-svg-hAWRCMAxBwZsq0pm .doneCrit1,#mermaid-svg-hAWRCMAxBwZsq0pm .doneCrit2,#mermaid-svg-hAWRCMAxBwZsq0pm .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-hAWRCMAxBwZsq0pm .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-hAWRCMAxBwZsq0pm .milestoneText{font-style:italic}#mermaid-svg-hAWRCMAxBwZsq0pm .doneCritText0,#mermaid-svg-hAWRCMAxBwZsq0pm .doneCritText1,#mermaid-svg-hAWRCMAxBwZsq0pm .doneCritText2,#mermaid-svg-hAWRCMAxBwZsq0pm .doneCritText3{fill:#000 !important}#mermaid-svg-hAWRCMAxBwZsq0pm .activeCritText0,#mermaid-svg-hAWRCMAxBwZsq0pm .activeCritText1,#mermaid-svg-hAWRCMAxBwZsq0pm .activeCritText2,#mermaid-svg-hAWRCMAxBwZsq0pm .activeCritText3{fill:#000 !important}#mermaid-svg-hAWRCMAxBwZsq0pm .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hAWRCMAxBwZsq0pm g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-hAWRCMAxBwZsq0pm g.classGroup text .title{font-weight:bolder}#mermaid-svg-hAWRCMAxBwZsq0pm g.clickable{cursor:pointer}#mermaid-svg-hAWRCMAxBwZsq0pm g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-hAWRCMAxBwZsq0pm g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-hAWRCMAxBwZsq0pm .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-hAWRCMAxBwZsq0pm .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-hAWRCMAxBwZsq0pm .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-hAWRCMAxBwZsq0pm .dashed-line{stroke-dasharray:3}#mermaid-svg-hAWRCMAxBwZsq0pm #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-hAWRCMAxBwZsq0pm #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-hAWRCMAxBwZsq0pm #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-hAWRCMAxBwZsq0pm #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-hAWRCMAxBwZsq0pm #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-hAWRCMAxBwZsq0pm #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-hAWRCMAxBwZsq0pm #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-hAWRCMAxBwZsq0pm #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-hAWRCMAxBwZsq0pm .commit-id,#mermaid-svg-hAWRCMAxBwZsq0pm .commit-msg,#mermaid-svg-hAWRCMAxBwZsq0pm .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hAWRCMAxBwZsq0pm .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hAWRCMAxBwZsq0pm .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hAWRCMAxBwZsq0pm g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hAWRCMAxBwZsq0pm g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-hAWRCMAxBwZsq0pm g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-hAWRCMAxBwZsq0pm g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-hAWRCMAxBwZsq0pm g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-hAWRCMAxBwZsq0pm g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-hAWRCMAxBwZsq0pm .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-hAWRCMAxBwZsq0pm .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-hAWRCMAxBwZsq0pm .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-hAWRCMAxBwZsq0pm .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-hAWRCMAxBwZsq0pm .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-hAWRCMAxBwZsq0pm .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-hAWRCMAxBwZsq0pm .edgeLabel text{fill:#333}#mermaid-svg-hAWRCMAxBwZsq0pm .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hAWRCMAxBwZsq0pm .node circle.state-start{fill:black;stroke:black}#mermaid-svg-hAWRCMAxBwZsq0pm .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-hAWRCMAxBwZsq0pm #statediagram-barbEnd{fill:#9370db}#mermaid-svg-hAWRCMAxBwZsq0pm .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-hAWRCMAxBwZsq0pm .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-hAWRCMAxBwZsq0pm .statediagram-state .divider{stroke:#9370db}#mermaid-svg-hAWRCMAxBwZsq0pm .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-hAWRCMAxBwZsq0pm .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-hAWRCMAxBwZsq0pm .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-hAWRCMAxBwZsq0pm .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-hAWRCMAxBwZsq0pm .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-hAWRCMAxBwZsq0pm .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-hAWRCMAxBwZsq0pm .note-edge{stroke-dasharray:5}#mermaid-svg-hAWRCMAxBwZsq0pm .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-hAWRCMAxBwZsq0pm .error-icon{fill:#522}#mermaid-svg-hAWRCMAxBwZsq0pm .error-text{fill:#522;stroke:#522}#mermaid-svg-hAWRCMAxBwZsq0pm .edge-thickness-normal{stroke-width:2px}#mermaid-svg-hAWRCMAxBwZsq0pm .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-hAWRCMAxBwZsq0pm .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-hAWRCMAxBwZsq0pm .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-hAWRCMAxBwZsq0pm .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-hAWRCMAxBwZsq0pm .marker{fill:#333}#mermaid-svg-hAWRCMAxBwZsq0pm .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-hAWRCMAxBwZsq0pm {color: rgba(0, 0, 0, 0.75);font: ;}

ZMQ_XPUB
*..*
ZMQ_XSUB
ZMQ_XPUB
1..*
ZMQ_XSUB
ZMQ_XPUB
1..*
ZMQ_XSUB
  1. 一个ZMQ_XPUB端可以同时支持多个ZMQ_XSUB端的订阅
  2. 一个ZMQ_XSUB端可以同时连接多个ZMQ_XPUB端
  3. ZMQ_XPUB和ZMQ_XSUB之间是many-to-many 的关系
  4. 一般情况下,一个ZMQ_XPUB对应一个ZMQ_XSUB

sub-xpub

#mermaid-svg-1XZZHHfcjVuAK7ab .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-1XZZHHfcjVuAK7ab .label text{fill:#333}#mermaid-svg-1XZZHHfcjVuAK7ab .node rect,#mermaid-svg-1XZZHHfcjVuAK7ab .node circle,#mermaid-svg-1XZZHHfcjVuAK7ab .node ellipse,#mermaid-svg-1XZZHHfcjVuAK7ab .node polygon,#mermaid-svg-1XZZHHfcjVuAK7ab .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-1XZZHHfcjVuAK7ab .node .label{text-align:center;fill:#333}#mermaid-svg-1XZZHHfcjVuAK7ab .node.clickable{cursor:pointer}#mermaid-svg-1XZZHHfcjVuAK7ab .arrowheadPath{fill:#333}#mermaid-svg-1XZZHHfcjVuAK7ab .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-1XZZHHfcjVuAK7ab .flowchart-link{stroke:#333;fill:none}#mermaid-svg-1XZZHHfcjVuAK7ab .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-1XZZHHfcjVuAK7ab .edgeLabel rect{opacity:0.9}#mermaid-svg-1XZZHHfcjVuAK7ab .edgeLabel span{color:#333}#mermaid-svg-1XZZHHfcjVuAK7ab .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-1XZZHHfcjVuAK7ab .cluster text{fill:#333}#mermaid-svg-1XZZHHfcjVuAK7ab div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-1XZZHHfcjVuAK7ab .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-1XZZHHfcjVuAK7ab text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-1XZZHHfcjVuAK7ab .actor-line{stroke:grey}#mermaid-svg-1XZZHHfcjVuAK7ab .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-1XZZHHfcjVuAK7ab .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-1XZZHHfcjVuAK7ab #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-1XZZHHfcjVuAK7ab .sequenceNumber{fill:#fff}#mermaid-svg-1XZZHHfcjVuAK7ab #sequencenumber{fill:#333}#mermaid-svg-1XZZHHfcjVuAK7ab #crosshead path{fill:#333;stroke:#333}#mermaid-svg-1XZZHHfcjVuAK7ab .messageText{fill:#333;stroke:#333}#mermaid-svg-1XZZHHfcjVuAK7ab .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-1XZZHHfcjVuAK7ab .labelText,#mermaid-svg-1XZZHHfcjVuAK7ab .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-1XZZHHfcjVuAK7ab .loopText,#mermaid-svg-1XZZHHfcjVuAK7ab .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-1XZZHHfcjVuAK7ab .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-1XZZHHfcjVuAK7ab .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-1XZZHHfcjVuAK7ab .noteText,#mermaid-svg-1XZZHHfcjVuAK7ab .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-1XZZHHfcjVuAK7ab .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-1XZZHHfcjVuAK7ab .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-1XZZHHfcjVuAK7ab .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-1XZZHHfcjVuAK7ab .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-1XZZHHfcjVuAK7ab .section{stroke:none;opacity:0.2}#mermaid-svg-1XZZHHfcjVuAK7ab .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-1XZZHHfcjVuAK7ab .section2{fill:#fff400}#mermaid-svg-1XZZHHfcjVuAK7ab .section1,#mermaid-svg-1XZZHHfcjVuAK7ab .section3{fill:#fff;opacity:0.2}#mermaid-svg-1XZZHHfcjVuAK7ab .sectionTitle0{fill:#333}#mermaid-svg-1XZZHHfcjVuAK7ab .sectionTitle1{fill:#333}#mermaid-svg-1XZZHHfcjVuAK7ab .sectionTitle2{fill:#333}#mermaid-svg-1XZZHHfcjVuAK7ab .sectionTitle3{fill:#333}#mermaid-svg-1XZZHHfcjVuAK7ab .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-1XZZHHfcjVuAK7ab .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-1XZZHHfcjVuAK7ab .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-1XZZHHfcjVuAK7ab .grid path{stroke-width:0}#mermaid-svg-1XZZHHfcjVuAK7ab .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-1XZZHHfcjVuAK7ab .task{stroke-width:2}#mermaid-svg-1XZZHHfcjVuAK7ab .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-1XZZHHfcjVuAK7ab .taskText:not([font-size]){font-size:11px}#mermaid-svg-1XZZHHfcjVuAK7ab .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-1XZZHHfcjVuAK7ab .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-1XZZHHfcjVuAK7ab .task.clickable{cursor:pointer}#mermaid-svg-1XZZHHfcjVuAK7ab .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-1XZZHHfcjVuAK7ab .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-1XZZHHfcjVuAK7ab .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-1XZZHHfcjVuAK7ab .taskText0,#mermaid-svg-1XZZHHfcjVuAK7ab .taskText1,#mermaid-svg-1XZZHHfcjVuAK7ab .taskText2,#mermaid-svg-1XZZHHfcjVuAK7ab .taskText3{fill:#fff}#mermaid-svg-1XZZHHfcjVuAK7ab .task0,#mermaid-svg-1XZZHHfcjVuAK7ab .task1,#mermaid-svg-1XZZHHfcjVuAK7ab .task2,#mermaid-svg-1XZZHHfcjVuAK7ab .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-1XZZHHfcjVuAK7ab .taskTextOutside0,#mermaid-svg-1XZZHHfcjVuAK7ab .taskTextOutside2{fill:#000}#mermaid-svg-1XZZHHfcjVuAK7ab .taskTextOutside1,#mermaid-svg-1XZZHHfcjVuAK7ab .taskTextOutside3{fill:#000}#mermaid-svg-1XZZHHfcjVuAK7ab .active0,#mermaid-svg-1XZZHHfcjVuAK7ab .active1,#mermaid-svg-1XZZHHfcjVuAK7ab .active2,#mermaid-svg-1XZZHHfcjVuAK7ab .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-1XZZHHfcjVuAK7ab .activeText0,#mermaid-svg-1XZZHHfcjVuAK7ab .activeText1,#mermaid-svg-1XZZHHfcjVuAK7ab .activeText2,#mermaid-svg-1XZZHHfcjVuAK7ab .activeText3{fill:#000 !important}#mermaid-svg-1XZZHHfcjVuAK7ab .done0,#mermaid-svg-1XZZHHfcjVuAK7ab .done1,#mermaid-svg-1XZZHHfcjVuAK7ab .done2,#mermaid-svg-1XZZHHfcjVuAK7ab .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-1XZZHHfcjVuAK7ab .doneText0,#mermaid-svg-1XZZHHfcjVuAK7ab .doneText1,#mermaid-svg-1XZZHHfcjVuAK7ab .doneText2,#mermaid-svg-1XZZHHfcjVuAK7ab .doneText3{fill:#000 !important}#mermaid-svg-1XZZHHfcjVuAK7ab .crit0,#mermaid-svg-1XZZHHfcjVuAK7ab .crit1,#mermaid-svg-1XZZHHfcjVuAK7ab .crit2,#mermaid-svg-1XZZHHfcjVuAK7ab .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-1XZZHHfcjVuAK7ab .activeCrit0,#mermaid-svg-1XZZHHfcjVuAK7ab .activeCrit1,#mermaid-svg-1XZZHHfcjVuAK7ab .activeCrit2,#mermaid-svg-1XZZHHfcjVuAK7ab .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-1XZZHHfcjVuAK7ab .doneCrit0,#mermaid-svg-1XZZHHfcjVuAK7ab .doneCrit1,#mermaid-svg-1XZZHHfcjVuAK7ab .doneCrit2,#mermaid-svg-1XZZHHfcjVuAK7ab .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-1XZZHHfcjVuAK7ab .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-1XZZHHfcjVuAK7ab .milestoneText{font-style:italic}#mermaid-svg-1XZZHHfcjVuAK7ab .doneCritText0,#mermaid-svg-1XZZHHfcjVuAK7ab .doneCritText1,#mermaid-svg-1XZZHHfcjVuAK7ab .doneCritText2,#mermaid-svg-1XZZHHfcjVuAK7ab .doneCritText3{fill:#000 !important}#mermaid-svg-1XZZHHfcjVuAK7ab .activeCritText0,#mermaid-svg-1XZZHHfcjVuAK7ab .activeCritText1,#mermaid-svg-1XZZHHfcjVuAK7ab .activeCritText2,#mermaid-svg-1XZZHHfcjVuAK7ab .activeCritText3{fill:#000 !important}#mermaid-svg-1XZZHHfcjVuAK7ab .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-1XZZHHfcjVuAK7ab g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-1XZZHHfcjVuAK7ab g.classGroup text .title{font-weight:bolder}#mermaid-svg-1XZZHHfcjVuAK7ab g.clickable{cursor:pointer}#mermaid-svg-1XZZHHfcjVuAK7ab g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-1XZZHHfcjVuAK7ab g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-1XZZHHfcjVuAK7ab .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-1XZZHHfcjVuAK7ab .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-1XZZHHfcjVuAK7ab .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-1XZZHHfcjVuAK7ab .dashed-line{stroke-dasharray:3}#mermaid-svg-1XZZHHfcjVuAK7ab #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-1XZZHHfcjVuAK7ab #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-1XZZHHfcjVuAK7ab #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-1XZZHHfcjVuAK7ab #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-1XZZHHfcjVuAK7ab #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-1XZZHHfcjVuAK7ab #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-1XZZHHfcjVuAK7ab #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-1XZZHHfcjVuAK7ab #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-1XZZHHfcjVuAK7ab .commit-id,#mermaid-svg-1XZZHHfcjVuAK7ab .commit-msg,#mermaid-svg-1XZZHHfcjVuAK7ab .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-1XZZHHfcjVuAK7ab .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-1XZZHHfcjVuAK7ab .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-1XZZHHfcjVuAK7ab g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-1XZZHHfcjVuAK7ab g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-1XZZHHfcjVuAK7ab g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-1XZZHHfcjVuAK7ab g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-1XZZHHfcjVuAK7ab g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-1XZZHHfcjVuAK7ab g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-1XZZHHfcjVuAK7ab .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-1XZZHHfcjVuAK7ab .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-1XZZHHfcjVuAK7ab .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-1XZZHHfcjVuAK7ab .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-1XZZHHfcjVuAK7ab .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-1XZZHHfcjVuAK7ab .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-1XZZHHfcjVuAK7ab .edgeLabel text{fill:#333}#mermaid-svg-1XZZHHfcjVuAK7ab .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-1XZZHHfcjVuAK7ab .node circle.state-start{fill:black;stroke:black}#mermaid-svg-1XZZHHfcjVuAK7ab .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-1XZZHHfcjVuAK7ab #statediagram-barbEnd{fill:#9370db}#mermaid-svg-1XZZHHfcjVuAK7ab .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-1XZZHHfcjVuAK7ab .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-1XZZHHfcjVuAK7ab .statediagram-state .divider{stroke:#9370db}#mermaid-svg-1XZZHHfcjVuAK7ab .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-1XZZHHfcjVuAK7ab .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-1XZZHHfcjVuAK7ab .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-1XZZHHfcjVuAK7ab .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-1XZZHHfcjVuAK7ab .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-1XZZHHfcjVuAK7ab .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-1XZZHHfcjVuAK7ab .note-edge{stroke-dasharray:5}#mermaid-svg-1XZZHHfcjVuAK7ab .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-1XZZHHfcjVuAK7ab .error-icon{fill:#522}#mermaid-svg-1XZZHHfcjVuAK7ab .error-text{fill:#522;stroke:#522}#mermaid-svg-1XZZHHfcjVuAK7ab .edge-thickness-normal{stroke-width:2px}#mermaid-svg-1XZZHHfcjVuAK7ab .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-1XZZHHfcjVuAK7ab .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-1XZZHHfcjVuAK7ab .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-1XZZHHfcjVuAK7ab .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-1XZZHHfcjVuAK7ab .marker{fill:#333}#mermaid-svg-1XZZHHfcjVuAK7ab .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-1XZZHHfcjVuAK7ab {color: rgba(0, 0, 0, 0.75);font: ;}

ZMQ_XPUB
*..*
ZMQ_SUB
ZMQ_XPUB
1..*
ZMQ_SUB
ZMQ_XPUB
1..*
ZMQ_SUB
  1. 一个ZMQ_XPUB端可以同时支持多个ZMQ_SUB端的订阅
  2. 一个ZMQ_SUB端可以同时连接多个ZMQ_XPUB端
  3. ZMQ_XPUB和ZMQ_SUB之间是many-to-many 的关系
  4. 一般情况下,一个ZMQ_XSUB对应多个ZMQ_XPUB

pub-broker-sub

#mermaid-svg-vARrcfYklwB66PQU .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-vARrcfYklwB66PQU .label text{fill:#333}#mermaid-svg-vARrcfYklwB66PQU .node rect,#mermaid-svg-vARrcfYklwB66PQU .node circle,#mermaid-svg-vARrcfYklwB66PQU .node ellipse,#mermaid-svg-vARrcfYklwB66PQU .node polygon,#mermaid-svg-vARrcfYklwB66PQU .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-vARrcfYklwB66PQU .node .label{text-align:center;fill:#333}#mermaid-svg-vARrcfYklwB66PQU .node.clickable{cursor:pointer}#mermaid-svg-vARrcfYklwB66PQU .arrowheadPath{fill:#333}#mermaid-svg-vARrcfYklwB66PQU .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-vARrcfYklwB66PQU .flowchart-link{stroke:#333;fill:none}#mermaid-svg-vARrcfYklwB66PQU .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-vARrcfYklwB66PQU .edgeLabel rect{opacity:0.9}#mermaid-svg-vARrcfYklwB66PQU .edgeLabel span{color:#333}#mermaid-svg-vARrcfYklwB66PQU .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-vARrcfYklwB66PQU .cluster text{fill:#333}#mermaid-svg-vARrcfYklwB66PQU div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-vARrcfYklwB66PQU .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-vARrcfYklwB66PQU text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-vARrcfYklwB66PQU .actor-line{stroke:grey}#mermaid-svg-vARrcfYklwB66PQU .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-vARrcfYklwB66PQU .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-vARrcfYklwB66PQU #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-vARrcfYklwB66PQU .sequenceNumber{fill:#fff}#mermaid-svg-vARrcfYklwB66PQU #sequencenumber{fill:#333}#mermaid-svg-vARrcfYklwB66PQU #crosshead path{fill:#333;stroke:#333}#mermaid-svg-vARrcfYklwB66PQU .messageText{fill:#333;stroke:#333}#mermaid-svg-vARrcfYklwB66PQU .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-vARrcfYklwB66PQU .labelText,#mermaid-svg-vARrcfYklwB66PQU .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-vARrcfYklwB66PQU .loopText,#mermaid-svg-vARrcfYklwB66PQU .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-vARrcfYklwB66PQU .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-vARrcfYklwB66PQU .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-vARrcfYklwB66PQU .noteText,#mermaid-svg-vARrcfYklwB66PQU .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-vARrcfYklwB66PQU .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-vARrcfYklwB66PQU .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-vARrcfYklwB66PQU .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-vARrcfYklwB66PQU .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-vARrcfYklwB66PQU .section{stroke:none;opacity:0.2}#mermaid-svg-vARrcfYklwB66PQU .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-vARrcfYklwB66PQU .section2{fill:#fff400}#mermaid-svg-vARrcfYklwB66PQU .section1,#mermaid-svg-vARrcfYklwB66PQU .section3{fill:#fff;opacity:0.2}#mermaid-svg-vARrcfYklwB66PQU .sectionTitle0{fill:#333}#mermaid-svg-vARrcfYklwB66PQU .sectionTitle1{fill:#333}#mermaid-svg-vARrcfYklwB66PQU .sectionTitle2{fill:#333}#mermaid-svg-vARrcfYklwB66PQU .sectionTitle3{fill:#333}#mermaid-svg-vARrcfYklwB66PQU .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-vARrcfYklwB66PQU .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-vARrcfYklwB66PQU .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-vARrcfYklwB66PQU .grid path{stroke-width:0}#mermaid-svg-vARrcfYklwB66PQU .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-vARrcfYklwB66PQU .task{stroke-width:2}#mermaid-svg-vARrcfYklwB66PQU .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-vARrcfYklwB66PQU .taskText:not([font-size]){font-size:11px}#mermaid-svg-vARrcfYklwB66PQU .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-vARrcfYklwB66PQU .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-vARrcfYklwB66PQU .task.clickable{cursor:pointer}#mermaid-svg-vARrcfYklwB66PQU .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-vARrcfYklwB66PQU .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-vARrcfYklwB66PQU .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-vARrcfYklwB66PQU .taskText0,#mermaid-svg-vARrcfYklwB66PQU .taskText1,#mermaid-svg-vARrcfYklwB66PQU .taskText2,#mermaid-svg-vARrcfYklwB66PQU .taskText3{fill:#fff}#mermaid-svg-vARrcfYklwB66PQU .task0,#mermaid-svg-vARrcfYklwB66PQU .task1,#mermaid-svg-vARrcfYklwB66PQU .task2,#mermaid-svg-vARrcfYklwB66PQU .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-vARrcfYklwB66PQU .taskTextOutside0,#mermaid-svg-vARrcfYklwB66PQU .taskTextOutside2{fill:#000}#mermaid-svg-vARrcfYklwB66PQU .taskTextOutside1,#mermaid-svg-vARrcfYklwB66PQU .taskTextOutside3{fill:#000}#mermaid-svg-vARrcfYklwB66PQU .active0,#mermaid-svg-vARrcfYklwB66PQU .active1,#mermaid-svg-vARrcfYklwB66PQU .active2,#mermaid-svg-vARrcfYklwB66PQU .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-vARrcfYklwB66PQU .activeText0,#mermaid-svg-vARrcfYklwB66PQU .activeText1,#mermaid-svg-vARrcfYklwB66PQU .activeText2,#mermaid-svg-vARrcfYklwB66PQU .activeText3{fill:#000 !important}#mermaid-svg-vARrcfYklwB66PQU .done0,#mermaid-svg-vARrcfYklwB66PQU .done1,#mermaid-svg-vARrcfYklwB66PQU .done2,#mermaid-svg-vARrcfYklwB66PQU .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-vARrcfYklwB66PQU .doneText0,#mermaid-svg-vARrcfYklwB66PQU .doneText1,#mermaid-svg-vARrcfYklwB66PQU .doneText2,#mermaid-svg-vARrcfYklwB66PQU .doneText3{fill:#000 !important}#mermaid-svg-vARrcfYklwB66PQU .crit0,#mermaid-svg-vARrcfYklwB66PQU .crit1,#mermaid-svg-vARrcfYklwB66PQU .crit2,#mermaid-svg-vARrcfYklwB66PQU .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-vARrcfYklwB66PQU .activeCrit0,#mermaid-svg-vARrcfYklwB66PQU .activeCrit1,#mermaid-svg-vARrcfYklwB66PQU .activeCrit2,#mermaid-svg-vARrcfYklwB66PQU .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-vARrcfYklwB66PQU .doneCrit0,#mermaid-svg-vARrcfYklwB66PQU .doneCrit1,#mermaid-svg-vARrcfYklwB66PQU .doneCrit2,#mermaid-svg-vARrcfYklwB66PQU .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-vARrcfYklwB66PQU .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-vARrcfYklwB66PQU .milestoneText{font-style:italic}#mermaid-svg-vARrcfYklwB66PQU .doneCritText0,#mermaid-svg-vARrcfYklwB66PQU .doneCritText1,#mermaid-svg-vARrcfYklwB66PQU .doneCritText2,#mermaid-svg-vARrcfYklwB66PQU .doneCritText3{fill:#000 !important}#mermaid-svg-vARrcfYklwB66PQU .activeCritText0,#mermaid-svg-vARrcfYklwB66PQU .activeCritText1,#mermaid-svg-vARrcfYklwB66PQU .activeCritText2,#mermaid-svg-vARrcfYklwB66PQU .activeCritText3{fill:#000 !important}#mermaid-svg-vARrcfYklwB66PQU .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-vARrcfYklwB66PQU g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-vARrcfYklwB66PQU g.classGroup text .title{font-weight:bolder}#mermaid-svg-vARrcfYklwB66PQU g.clickable{cursor:pointer}#mermaid-svg-vARrcfYklwB66PQU g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-vARrcfYklwB66PQU g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-vARrcfYklwB66PQU .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-vARrcfYklwB66PQU .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-vARrcfYklwB66PQU .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-vARrcfYklwB66PQU .dashed-line{stroke-dasharray:3}#mermaid-svg-vARrcfYklwB66PQU #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-vARrcfYklwB66PQU #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-vARrcfYklwB66PQU #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-vARrcfYklwB66PQU #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-vARrcfYklwB66PQU #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-vARrcfYklwB66PQU #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-vARrcfYklwB66PQU #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-vARrcfYklwB66PQU #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-vARrcfYklwB66PQU .commit-id,#mermaid-svg-vARrcfYklwB66PQU .commit-msg,#mermaid-svg-vARrcfYklwB66PQU .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-vARrcfYklwB66PQU .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-vARrcfYklwB66PQU .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-vARrcfYklwB66PQU g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-vARrcfYklwB66PQU g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-vARrcfYklwB66PQU g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-vARrcfYklwB66PQU g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-vARrcfYklwB66PQU g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-vARrcfYklwB66PQU g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-vARrcfYklwB66PQU .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-vARrcfYklwB66PQU .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-vARrcfYklwB66PQU .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-vARrcfYklwB66PQU .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-vARrcfYklwB66PQU .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-vARrcfYklwB66PQU .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-vARrcfYklwB66PQU .edgeLabel text{fill:#333}#mermaid-svg-vARrcfYklwB66PQU .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-vARrcfYklwB66PQU .node circle.state-start{fill:black;stroke:black}#mermaid-svg-vARrcfYklwB66PQU .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-vARrcfYklwB66PQU #statediagram-barbEnd{fill:#9370db}#mermaid-svg-vARrcfYklwB66PQU .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-vARrcfYklwB66PQU .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-vARrcfYklwB66PQU .statediagram-state .divider{stroke:#9370db}#mermaid-svg-vARrcfYklwB66PQU .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-vARrcfYklwB66PQU .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-vARrcfYklwB66PQU .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-vARrcfYklwB66PQU .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-vARrcfYklwB66PQU .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-vARrcfYklwB66PQU .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-vARrcfYklwB66PQU .note-edge{stroke-dasharray:5}#mermaid-svg-vARrcfYklwB66PQU .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-vARrcfYklwB66PQU .error-icon{fill:#522}#mermaid-svg-vARrcfYklwB66PQU .error-text{fill:#522;stroke:#522}#mermaid-svg-vARrcfYklwB66PQU .edge-thickness-normal{stroke-width:2px}#mermaid-svg-vARrcfYklwB66PQU .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-vARrcfYklwB66PQU .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-vARrcfYklwB66PQU .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-vARrcfYklwB66PQU .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-vARrcfYklwB66PQU .marker{fill:#333}#mermaid-svg-vARrcfYklwB66PQU .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-vARrcfYklwB66PQU {color: rgba(0, 0, 0, 0.75);font: ;}

ZMQ_PUB
*..1
ZMQ_XSUB,ZMQ_XPUB
1..*
ZMQ_SUB
ZMQ_PUB
*..1
ZMQ_XSUB,ZMQ_XPUB
ZMQ_PUB
ZMQ_PUB
1..*
ZMQ_SUB
ZMQ_SUB
ZMQ_SUB
  1. 一个ZMQ_PUB端可以同时支持多个broker端的订阅
  2. 一个broker端可以同时连接多个ZMQ_PUB端
  3. 一个ZMQ_SUB端可以同时连接多个broker端
  4. broker和ZMQ_PUB之间是1-to-many 的关系
  5. ZMQ_SUB和broker之间是1-to-many的关系
  6. 一般情况下,多个ZMQ_PUB对应一个broker(ZMQ_XSUB,ZMQ_XPUB),一个broker对应多个ZMQ_XSUB

Pipeline模式

#mermaid-svg-eWo80tAwUZDulhQ5 .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-eWo80tAwUZDulhQ5 .label text{fill:#333}#mermaid-svg-eWo80tAwUZDulhQ5 .node rect,#mermaid-svg-eWo80tAwUZDulhQ5 .node circle,#mermaid-svg-eWo80tAwUZDulhQ5 .node ellipse,#mermaid-svg-eWo80tAwUZDulhQ5 .node polygon,#mermaid-svg-eWo80tAwUZDulhQ5 .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-eWo80tAwUZDulhQ5 .node .label{text-align:center;fill:#333}#mermaid-svg-eWo80tAwUZDulhQ5 .node.clickable{cursor:pointer}#mermaid-svg-eWo80tAwUZDulhQ5 .arrowheadPath{fill:#333}#mermaid-svg-eWo80tAwUZDulhQ5 .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-eWo80tAwUZDulhQ5 .flowchart-link{stroke:#333;fill:none}#mermaid-svg-eWo80tAwUZDulhQ5 .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-eWo80tAwUZDulhQ5 .edgeLabel rect{opacity:0.9}#mermaid-svg-eWo80tAwUZDulhQ5 .edgeLabel span{color:#333}#mermaid-svg-eWo80tAwUZDulhQ5 .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-eWo80tAwUZDulhQ5 .cluster text{fill:#333}#mermaid-svg-eWo80tAwUZDulhQ5 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-eWo80tAwUZDulhQ5 .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-eWo80tAwUZDulhQ5 text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-eWo80tAwUZDulhQ5 .actor-line{stroke:grey}#mermaid-svg-eWo80tAwUZDulhQ5 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-eWo80tAwUZDulhQ5 .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-eWo80tAwUZDulhQ5 #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-eWo80tAwUZDulhQ5 .sequenceNumber{fill:#fff}#mermaid-svg-eWo80tAwUZDulhQ5 #sequencenumber{fill:#333}#mermaid-svg-eWo80tAwUZDulhQ5 #crosshead path{fill:#333;stroke:#333}#mermaid-svg-eWo80tAwUZDulhQ5 .messageText{fill:#333;stroke:#333}#mermaid-svg-eWo80tAwUZDulhQ5 .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-eWo80tAwUZDulhQ5 .labelText,#mermaid-svg-eWo80tAwUZDulhQ5 .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-eWo80tAwUZDulhQ5 .loopText,#mermaid-svg-eWo80tAwUZDulhQ5 .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-eWo80tAwUZDulhQ5 .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-eWo80tAwUZDulhQ5 .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-eWo80tAwUZDulhQ5 .noteText,#mermaid-svg-eWo80tAwUZDulhQ5 .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-eWo80tAwUZDulhQ5 .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-eWo80tAwUZDulhQ5 .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-eWo80tAwUZDulhQ5 .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-eWo80tAwUZDulhQ5 .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-eWo80tAwUZDulhQ5 .section{stroke:none;opacity:0.2}#mermaid-svg-eWo80tAwUZDulhQ5 .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-eWo80tAwUZDulhQ5 .section2{fill:#fff400}#mermaid-svg-eWo80tAwUZDulhQ5 .section1,#mermaid-svg-eWo80tAwUZDulhQ5 .section3{fill:#fff;opacity:0.2}#mermaid-svg-eWo80tAwUZDulhQ5 .sectionTitle0{fill:#333}#mermaid-svg-eWo80tAwUZDulhQ5 .sectionTitle1{fill:#333}#mermaid-svg-eWo80tAwUZDulhQ5 .sectionTitle2{fill:#333}#mermaid-svg-eWo80tAwUZDulhQ5 .sectionTitle3{fill:#333}#mermaid-svg-eWo80tAwUZDulhQ5 .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-eWo80tAwUZDulhQ5 .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-eWo80tAwUZDulhQ5 .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-eWo80tAwUZDulhQ5 .grid path{stroke-width:0}#mermaid-svg-eWo80tAwUZDulhQ5 .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-eWo80tAwUZDulhQ5 .task{stroke-width:2}#mermaid-svg-eWo80tAwUZDulhQ5 .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-eWo80tAwUZDulhQ5 .taskText:not([font-size]){font-size:11px}#mermaid-svg-eWo80tAwUZDulhQ5 .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-eWo80tAwUZDulhQ5 .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-eWo80tAwUZDulhQ5 .task.clickable{cursor:pointer}#mermaid-svg-eWo80tAwUZDulhQ5 .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-eWo80tAwUZDulhQ5 .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-eWo80tAwUZDulhQ5 .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-eWo80tAwUZDulhQ5 .taskText0,#mermaid-svg-eWo80tAwUZDulhQ5 .taskText1,#mermaid-svg-eWo80tAwUZDulhQ5 .taskText2,#mermaid-svg-eWo80tAwUZDulhQ5 .taskText3{fill:#fff}#mermaid-svg-eWo80tAwUZDulhQ5 .task0,#mermaid-svg-eWo80tAwUZDulhQ5 .task1,#mermaid-svg-eWo80tAwUZDulhQ5 .task2,#mermaid-svg-eWo80tAwUZDulhQ5 .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-eWo80tAwUZDulhQ5 .taskTextOutside0,#mermaid-svg-eWo80tAwUZDulhQ5 .taskTextOutside2{fill:#000}#mermaid-svg-eWo80tAwUZDulhQ5 .taskTextOutside1,#mermaid-svg-eWo80tAwUZDulhQ5 .taskTextOutside3{fill:#000}#mermaid-svg-eWo80tAwUZDulhQ5 .active0,#mermaid-svg-eWo80tAwUZDulhQ5 .active1,#mermaid-svg-eWo80tAwUZDulhQ5 .active2,#mermaid-svg-eWo80tAwUZDulhQ5 .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-eWo80tAwUZDulhQ5 .activeText0,#mermaid-svg-eWo80tAwUZDulhQ5 .activeText1,#mermaid-svg-eWo80tAwUZDulhQ5 .activeText2,#mermaid-svg-eWo80tAwUZDulhQ5 .activeText3{fill:#000 !important}#mermaid-svg-eWo80tAwUZDulhQ5 .done0,#mermaid-svg-eWo80tAwUZDulhQ5 .done1,#mermaid-svg-eWo80tAwUZDulhQ5 .done2,#mermaid-svg-eWo80tAwUZDulhQ5 .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-eWo80tAwUZDulhQ5 .doneText0,#mermaid-svg-eWo80tAwUZDulhQ5 .doneText1,#mermaid-svg-eWo80tAwUZDulhQ5 .doneText2,#mermaid-svg-eWo80tAwUZDulhQ5 .doneText3{fill:#000 !important}#mermaid-svg-eWo80tAwUZDulhQ5 .crit0,#mermaid-svg-eWo80tAwUZDulhQ5 .crit1,#mermaid-svg-eWo80tAwUZDulhQ5 .crit2,#mermaid-svg-eWo80tAwUZDulhQ5 .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-eWo80tAwUZDulhQ5 .activeCrit0,#mermaid-svg-eWo80tAwUZDulhQ5 .activeCrit1,#mermaid-svg-eWo80tAwUZDulhQ5 .activeCrit2,#mermaid-svg-eWo80tAwUZDulhQ5 .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-eWo80tAwUZDulhQ5 .doneCrit0,#mermaid-svg-eWo80tAwUZDulhQ5 .doneCrit1,#mermaid-svg-eWo80tAwUZDulhQ5 .doneCrit2,#mermaid-svg-eWo80tAwUZDulhQ5 .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-eWo80tAwUZDulhQ5 .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-eWo80tAwUZDulhQ5 .milestoneText{font-style:italic}#mermaid-svg-eWo80tAwUZDulhQ5 .doneCritText0,#mermaid-svg-eWo80tAwUZDulhQ5 .doneCritText1,#mermaid-svg-eWo80tAwUZDulhQ5 .doneCritText2,#mermaid-svg-eWo80tAwUZDulhQ5 .doneCritText3{fill:#000 !important}#mermaid-svg-eWo80tAwUZDulhQ5 .activeCritText0,#mermaid-svg-eWo80tAwUZDulhQ5 .activeCritText1,#mermaid-svg-eWo80tAwUZDulhQ5 .activeCritText2,#mermaid-svg-eWo80tAwUZDulhQ5 .activeCritText3{fill:#000 !important}#mermaid-svg-eWo80tAwUZDulhQ5 .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-eWo80tAwUZDulhQ5 g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-eWo80tAwUZDulhQ5 g.classGroup text .title{font-weight:bolder}#mermaid-svg-eWo80tAwUZDulhQ5 g.clickable{cursor:pointer}#mermaid-svg-eWo80tAwUZDulhQ5 g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-eWo80tAwUZDulhQ5 g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-eWo80tAwUZDulhQ5 .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-eWo80tAwUZDulhQ5 .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-eWo80tAwUZDulhQ5 .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-eWo80tAwUZDulhQ5 .dashed-line{stroke-dasharray:3}#mermaid-svg-eWo80tAwUZDulhQ5 #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-eWo80tAwUZDulhQ5 #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-eWo80tAwUZDulhQ5 #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-eWo80tAwUZDulhQ5 #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-eWo80tAwUZDulhQ5 #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-eWo80tAwUZDulhQ5 #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-eWo80tAwUZDulhQ5 #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-eWo80tAwUZDulhQ5 #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-eWo80tAwUZDulhQ5 .commit-id,#mermaid-svg-eWo80tAwUZDulhQ5 .commit-msg,#mermaid-svg-eWo80tAwUZDulhQ5 .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-eWo80tAwUZDulhQ5 .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-eWo80tAwUZDulhQ5 .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-eWo80tAwUZDulhQ5 g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-eWo80tAwUZDulhQ5 g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-eWo80tAwUZDulhQ5 g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-eWo80tAwUZDulhQ5 g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-eWo80tAwUZDulhQ5 g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-eWo80tAwUZDulhQ5 g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-eWo80tAwUZDulhQ5 .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-eWo80tAwUZDulhQ5 .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-eWo80tAwUZDulhQ5 .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-eWo80tAwUZDulhQ5 .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-eWo80tAwUZDulhQ5 .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-eWo80tAwUZDulhQ5 .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-eWo80tAwUZDulhQ5 .edgeLabel text{fill:#333}#mermaid-svg-eWo80tAwUZDulhQ5 .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-eWo80tAwUZDulhQ5 .node circle.state-start{fill:black;stroke:black}#mermaid-svg-eWo80tAwUZDulhQ5 .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-eWo80tAwUZDulhQ5 #statediagram-barbEnd{fill:#9370db}#mermaid-svg-eWo80tAwUZDulhQ5 .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-eWo80tAwUZDulhQ5 .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-eWo80tAwUZDulhQ5 .statediagram-state .divider{stroke:#9370db}#mermaid-svg-eWo80tAwUZDulhQ5 .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-eWo80tAwUZDulhQ5 .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-eWo80tAwUZDulhQ5 .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-eWo80tAwUZDulhQ5 .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-eWo80tAwUZDulhQ5 .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-eWo80tAwUZDulhQ5 .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-eWo80tAwUZDulhQ5 .note-edge{stroke-dasharray:5}#mermaid-svg-eWo80tAwUZDulhQ5 .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-eWo80tAwUZDulhQ5 .error-icon{fill:#522}#mermaid-svg-eWo80tAwUZDulhQ5 .error-text{fill:#522;stroke:#522}#mermaid-svg-eWo80tAwUZDulhQ5 .edge-thickness-normal{stroke-width:2px}#mermaid-svg-eWo80tAwUZDulhQ5 .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-eWo80tAwUZDulhQ5 .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-eWo80tAwUZDulhQ5 .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-eWo80tAwUZDulhQ5 .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-eWo80tAwUZDulhQ5 .marker{fill:#333}#mermaid-svg-eWo80tAwUZDulhQ5 .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-eWo80tAwUZDulhQ5 {color: rgba(0, 0, 0, 0.75);font: ;}

ZMQ_PUSH
1..*
ZMQ_PULL
ZMQ_PUSH
1..*
ZMQ_PULL
ZMQ_PULL
  1. 一个ZMQ_PUSH可以同时支持多个ZMQ_PULL
  2. 一个ZMQ_PULL可以同时连接多个ZMQ_PUSH
  3. 当多个ZMQ_PULL连接到一个ZMQ_PUSH时,在ZMQ_PULL端程现的是负载均衡模式,其中一个ZMQ_PULL断开后,其他的ZMQ_PULL立即接管数据,不会出现丢失的情况
  4. 当一个ZMQ_PULL连接多个ZMQ_PUSH时,ZMQ_PULL采用公平队列的形式处理多个ZMQ_PUSH的请求

Pair模式

#mermaid-svg-c6AprfuCOlV4QWTG .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-c6AprfuCOlV4QWTG .label text{fill:#333}#mermaid-svg-c6AprfuCOlV4QWTG .node rect,#mermaid-svg-c6AprfuCOlV4QWTG .node circle,#mermaid-svg-c6AprfuCOlV4QWTG .node ellipse,#mermaid-svg-c6AprfuCOlV4QWTG .node polygon,#mermaid-svg-c6AprfuCOlV4QWTG .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-c6AprfuCOlV4QWTG .node .label{text-align:center;fill:#333}#mermaid-svg-c6AprfuCOlV4QWTG .node.clickable{cursor:pointer}#mermaid-svg-c6AprfuCOlV4QWTG .arrowheadPath{fill:#333}#mermaid-svg-c6AprfuCOlV4QWTG .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-c6AprfuCOlV4QWTG .flowchart-link{stroke:#333;fill:none}#mermaid-svg-c6AprfuCOlV4QWTG .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-c6AprfuCOlV4QWTG .edgeLabel rect{opacity:0.9}#mermaid-svg-c6AprfuCOlV4QWTG .edgeLabel span{color:#333}#mermaid-svg-c6AprfuCOlV4QWTG .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-c6AprfuCOlV4QWTG .cluster text{fill:#333}#mermaid-svg-c6AprfuCOlV4QWTG div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-c6AprfuCOlV4QWTG .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-c6AprfuCOlV4QWTG text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-c6AprfuCOlV4QWTG .actor-line{stroke:grey}#mermaid-svg-c6AprfuCOlV4QWTG .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-c6AprfuCOlV4QWTG .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-c6AprfuCOlV4QWTG #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-c6AprfuCOlV4QWTG .sequenceNumber{fill:#fff}#mermaid-svg-c6AprfuCOlV4QWTG #sequencenumber{fill:#333}#mermaid-svg-c6AprfuCOlV4QWTG #crosshead path{fill:#333;stroke:#333}#mermaid-svg-c6AprfuCOlV4QWTG .messageText{fill:#333;stroke:#333}#mermaid-svg-c6AprfuCOlV4QWTG .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-c6AprfuCOlV4QWTG .labelText,#mermaid-svg-c6AprfuCOlV4QWTG .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-c6AprfuCOlV4QWTG .loopText,#mermaid-svg-c6AprfuCOlV4QWTG .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-c6AprfuCOlV4QWTG .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-c6AprfuCOlV4QWTG .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-c6AprfuCOlV4QWTG .noteText,#mermaid-svg-c6AprfuCOlV4QWTG .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-c6AprfuCOlV4QWTG .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-c6AprfuCOlV4QWTG .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-c6AprfuCOlV4QWTG .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-c6AprfuCOlV4QWTG .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-c6AprfuCOlV4QWTG .section{stroke:none;opacity:0.2}#mermaid-svg-c6AprfuCOlV4QWTG .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-c6AprfuCOlV4QWTG .section2{fill:#fff400}#mermaid-svg-c6AprfuCOlV4QWTG .section1,#mermaid-svg-c6AprfuCOlV4QWTG .section3{fill:#fff;opacity:0.2}#mermaid-svg-c6AprfuCOlV4QWTG .sectionTitle0{fill:#333}#mermaid-svg-c6AprfuCOlV4QWTG .sectionTitle1{fill:#333}#mermaid-svg-c6AprfuCOlV4QWTG .sectionTitle2{fill:#333}#mermaid-svg-c6AprfuCOlV4QWTG .sectionTitle3{fill:#333}#mermaid-svg-c6AprfuCOlV4QWTG .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-c6AprfuCOlV4QWTG .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-c6AprfuCOlV4QWTG .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-c6AprfuCOlV4QWTG .grid path{stroke-width:0}#mermaid-svg-c6AprfuCOlV4QWTG .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-c6AprfuCOlV4QWTG .task{stroke-width:2}#mermaid-svg-c6AprfuCOlV4QWTG .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-c6AprfuCOlV4QWTG .taskText:not([font-size]){font-size:11px}#mermaid-svg-c6AprfuCOlV4QWTG .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-c6AprfuCOlV4QWTG .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-c6AprfuCOlV4QWTG .task.clickable{cursor:pointer}#mermaid-svg-c6AprfuCOlV4QWTG .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-c6AprfuCOlV4QWTG .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-c6AprfuCOlV4QWTG .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-c6AprfuCOlV4QWTG .taskText0,#mermaid-svg-c6AprfuCOlV4QWTG .taskText1,#mermaid-svg-c6AprfuCOlV4QWTG .taskText2,#mermaid-svg-c6AprfuCOlV4QWTG .taskText3{fill:#fff}#mermaid-svg-c6AprfuCOlV4QWTG .task0,#mermaid-svg-c6AprfuCOlV4QWTG .task1,#mermaid-svg-c6AprfuCOlV4QWTG .task2,#mermaid-svg-c6AprfuCOlV4QWTG .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-c6AprfuCOlV4QWTG .taskTextOutside0,#mermaid-svg-c6AprfuCOlV4QWTG .taskTextOutside2{fill:#000}#mermaid-svg-c6AprfuCOlV4QWTG .taskTextOutside1,#mermaid-svg-c6AprfuCOlV4QWTG .taskTextOutside3{fill:#000}#mermaid-svg-c6AprfuCOlV4QWTG .active0,#mermaid-svg-c6AprfuCOlV4QWTG .active1,#mermaid-svg-c6AprfuCOlV4QWTG .active2,#mermaid-svg-c6AprfuCOlV4QWTG .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-c6AprfuCOlV4QWTG .activeText0,#mermaid-svg-c6AprfuCOlV4QWTG .activeText1,#mermaid-svg-c6AprfuCOlV4QWTG .activeText2,#mermaid-svg-c6AprfuCOlV4QWTG .activeText3{fill:#000 !important}#mermaid-svg-c6AprfuCOlV4QWTG .done0,#mermaid-svg-c6AprfuCOlV4QWTG .done1,#mermaid-svg-c6AprfuCOlV4QWTG .done2,#mermaid-svg-c6AprfuCOlV4QWTG .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-c6AprfuCOlV4QWTG .doneText0,#mermaid-svg-c6AprfuCOlV4QWTG .doneText1,#mermaid-svg-c6AprfuCOlV4QWTG .doneText2,#mermaid-svg-c6AprfuCOlV4QWTG .doneText3{fill:#000 !important}#mermaid-svg-c6AprfuCOlV4QWTG .crit0,#mermaid-svg-c6AprfuCOlV4QWTG .crit1,#mermaid-svg-c6AprfuCOlV4QWTG .crit2,#mermaid-svg-c6AprfuCOlV4QWTG .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-c6AprfuCOlV4QWTG .activeCrit0,#mermaid-svg-c6AprfuCOlV4QWTG .activeCrit1,#mermaid-svg-c6AprfuCOlV4QWTG .activeCrit2,#mermaid-svg-c6AprfuCOlV4QWTG .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-c6AprfuCOlV4QWTG .doneCrit0,#mermaid-svg-c6AprfuCOlV4QWTG .doneCrit1,#mermaid-svg-c6AprfuCOlV4QWTG .doneCrit2,#mermaid-svg-c6AprfuCOlV4QWTG .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-c6AprfuCOlV4QWTG .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-c6AprfuCOlV4QWTG .milestoneText{font-style:italic}#mermaid-svg-c6AprfuCOlV4QWTG .doneCritText0,#mermaid-svg-c6AprfuCOlV4QWTG .doneCritText1,#mermaid-svg-c6AprfuCOlV4QWTG .doneCritText2,#mermaid-svg-c6AprfuCOlV4QWTG .doneCritText3{fill:#000 !important}#mermaid-svg-c6AprfuCOlV4QWTG .activeCritText0,#mermaid-svg-c6AprfuCOlV4QWTG .activeCritText1,#mermaid-svg-c6AprfuCOlV4QWTG .activeCritText2,#mermaid-svg-c6AprfuCOlV4QWTG .activeCritText3{fill:#000 !important}#mermaid-svg-c6AprfuCOlV4QWTG .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-c6AprfuCOlV4QWTG g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-c6AprfuCOlV4QWTG g.classGroup text .title{font-weight:bolder}#mermaid-svg-c6AprfuCOlV4QWTG g.clickable{cursor:pointer}#mermaid-svg-c6AprfuCOlV4QWTG g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-c6AprfuCOlV4QWTG g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-c6AprfuCOlV4QWTG .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-c6AprfuCOlV4QWTG .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-c6AprfuCOlV4QWTG .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-c6AprfuCOlV4QWTG .dashed-line{stroke-dasharray:3}#mermaid-svg-c6AprfuCOlV4QWTG #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-c6AprfuCOlV4QWTG #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-c6AprfuCOlV4QWTG #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-c6AprfuCOlV4QWTG #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-c6AprfuCOlV4QWTG #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-c6AprfuCOlV4QWTG #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-c6AprfuCOlV4QWTG #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-c6AprfuCOlV4QWTG #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-c6AprfuCOlV4QWTG .commit-id,#mermaid-svg-c6AprfuCOlV4QWTG .commit-msg,#mermaid-svg-c6AprfuCOlV4QWTG .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-c6AprfuCOlV4QWTG .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-c6AprfuCOlV4QWTG .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-c6AprfuCOlV4QWTG g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-c6AprfuCOlV4QWTG g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-c6AprfuCOlV4QWTG g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-c6AprfuCOlV4QWTG g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-c6AprfuCOlV4QWTG g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-c6AprfuCOlV4QWTG g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-c6AprfuCOlV4QWTG .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-c6AprfuCOlV4QWTG .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-c6AprfuCOlV4QWTG .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-c6AprfuCOlV4QWTG .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-c6AprfuCOlV4QWTG .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-c6AprfuCOlV4QWTG .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-c6AprfuCOlV4QWTG .edgeLabel text{fill:#333}#mermaid-svg-c6AprfuCOlV4QWTG .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-c6AprfuCOlV4QWTG .node circle.state-start{fill:black;stroke:black}#mermaid-svg-c6AprfuCOlV4QWTG .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-c6AprfuCOlV4QWTG #statediagram-barbEnd{fill:#9370db}#mermaid-svg-c6AprfuCOlV4QWTG .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-c6AprfuCOlV4QWTG .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-c6AprfuCOlV4QWTG .statediagram-state .divider{stroke:#9370db}#mermaid-svg-c6AprfuCOlV4QWTG .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-c6AprfuCOlV4QWTG .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-c6AprfuCOlV4QWTG .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-c6AprfuCOlV4QWTG .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-c6AprfuCOlV4QWTG .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-c6AprfuCOlV4QWTG .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-c6AprfuCOlV4QWTG .note-edge{stroke-dasharray:5}#mermaid-svg-c6AprfuCOlV4QWTG .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-c6AprfuCOlV4QWTG .error-icon{fill:#522}#mermaid-svg-c6AprfuCOlV4QWTG .error-text{fill:#522;stroke:#522}#mermaid-svg-c6AprfuCOlV4QWTG .edge-thickness-normal{stroke-width:2px}#mermaid-svg-c6AprfuCOlV4QWTG .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-c6AprfuCOlV4QWTG .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-c6AprfuCOlV4QWTG .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-c6AprfuCOlV4QWTG .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-c6AprfuCOlV4QWTG .marker{fill:#333}#mermaid-svg-c6AprfuCOlV4QWTG .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-c6AprfuCOlV4QWTG {color: rgba(0, 0, 0, 0.75);font: ;}

ZMQ_PAIR
1..1
ZMQ_PAIR
  1. 一个ZMQ_PAIR同时只能连接一个ZMQ_PAIR
  2. 主要用于线程间的通讯

Native模式

#mermaid-svg-3VOjyzQ34PyGS3zu .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-3VOjyzQ34PyGS3zu .label text{fill:#333}#mermaid-svg-3VOjyzQ34PyGS3zu .node rect,#mermaid-svg-3VOjyzQ34PyGS3zu .node circle,#mermaid-svg-3VOjyzQ34PyGS3zu .node ellipse,#mermaid-svg-3VOjyzQ34PyGS3zu .node polygon,#mermaid-svg-3VOjyzQ34PyGS3zu .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-3VOjyzQ34PyGS3zu .node .label{text-align:center;fill:#333}#mermaid-svg-3VOjyzQ34PyGS3zu .node.clickable{cursor:pointer}#mermaid-svg-3VOjyzQ34PyGS3zu .arrowheadPath{fill:#333}#mermaid-svg-3VOjyzQ34PyGS3zu .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-3VOjyzQ34PyGS3zu .flowchart-link{stroke:#333;fill:none}#mermaid-svg-3VOjyzQ34PyGS3zu .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-3VOjyzQ34PyGS3zu .edgeLabel rect{opacity:0.9}#mermaid-svg-3VOjyzQ34PyGS3zu .edgeLabel span{color:#333}#mermaid-svg-3VOjyzQ34PyGS3zu .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-3VOjyzQ34PyGS3zu .cluster text{fill:#333}#mermaid-svg-3VOjyzQ34PyGS3zu div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-3VOjyzQ34PyGS3zu .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-3VOjyzQ34PyGS3zu text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-3VOjyzQ34PyGS3zu .actor-line{stroke:grey}#mermaid-svg-3VOjyzQ34PyGS3zu .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-3VOjyzQ34PyGS3zu .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-3VOjyzQ34PyGS3zu #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-3VOjyzQ34PyGS3zu .sequenceNumber{fill:#fff}#mermaid-svg-3VOjyzQ34PyGS3zu #sequencenumber{fill:#333}#mermaid-svg-3VOjyzQ34PyGS3zu #crosshead path{fill:#333;stroke:#333}#mermaid-svg-3VOjyzQ34PyGS3zu .messageText{fill:#333;stroke:#333}#mermaid-svg-3VOjyzQ34PyGS3zu .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-3VOjyzQ34PyGS3zu .labelText,#mermaid-svg-3VOjyzQ34PyGS3zu .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-3VOjyzQ34PyGS3zu .loopText,#mermaid-svg-3VOjyzQ34PyGS3zu .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-3VOjyzQ34PyGS3zu .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-3VOjyzQ34PyGS3zu .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-3VOjyzQ34PyGS3zu .noteText,#mermaid-svg-3VOjyzQ34PyGS3zu .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-3VOjyzQ34PyGS3zu .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-3VOjyzQ34PyGS3zu .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-3VOjyzQ34PyGS3zu .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-3VOjyzQ34PyGS3zu .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-3VOjyzQ34PyGS3zu .section{stroke:none;opacity:0.2}#mermaid-svg-3VOjyzQ34PyGS3zu .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-3VOjyzQ34PyGS3zu .section2{fill:#fff400}#mermaid-svg-3VOjyzQ34PyGS3zu .section1,#mermaid-svg-3VOjyzQ34PyGS3zu .section3{fill:#fff;opacity:0.2}#mermaid-svg-3VOjyzQ34PyGS3zu .sectionTitle0{fill:#333}#mermaid-svg-3VOjyzQ34PyGS3zu .sectionTitle1{fill:#333}#mermaid-svg-3VOjyzQ34PyGS3zu .sectionTitle2{fill:#333}#mermaid-svg-3VOjyzQ34PyGS3zu .sectionTitle3{fill:#333}#mermaid-svg-3VOjyzQ34PyGS3zu .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-3VOjyzQ34PyGS3zu .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-3VOjyzQ34PyGS3zu .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-3VOjyzQ34PyGS3zu .grid path{stroke-width:0}#mermaid-svg-3VOjyzQ34PyGS3zu .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-3VOjyzQ34PyGS3zu .task{stroke-width:2}#mermaid-svg-3VOjyzQ34PyGS3zu .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-3VOjyzQ34PyGS3zu .taskText:not([font-size]){font-size:11px}#mermaid-svg-3VOjyzQ34PyGS3zu .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-3VOjyzQ34PyGS3zu .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-3VOjyzQ34PyGS3zu .task.clickable{cursor:pointer}#mermaid-svg-3VOjyzQ34PyGS3zu .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-3VOjyzQ34PyGS3zu .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-3VOjyzQ34PyGS3zu .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-3VOjyzQ34PyGS3zu .taskText0,#mermaid-svg-3VOjyzQ34PyGS3zu .taskText1,#mermaid-svg-3VOjyzQ34PyGS3zu .taskText2,#mermaid-svg-3VOjyzQ34PyGS3zu .taskText3{fill:#fff}#mermaid-svg-3VOjyzQ34PyGS3zu .task0,#mermaid-svg-3VOjyzQ34PyGS3zu .task1,#mermaid-svg-3VOjyzQ34PyGS3zu .task2,#mermaid-svg-3VOjyzQ34PyGS3zu .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-3VOjyzQ34PyGS3zu .taskTextOutside0,#mermaid-svg-3VOjyzQ34PyGS3zu .taskTextOutside2{fill:#000}#mermaid-svg-3VOjyzQ34PyGS3zu .taskTextOutside1,#mermaid-svg-3VOjyzQ34PyGS3zu .taskTextOutside3{fill:#000}#mermaid-svg-3VOjyzQ34PyGS3zu .active0,#mermaid-svg-3VOjyzQ34PyGS3zu .active1,#mermaid-svg-3VOjyzQ34PyGS3zu .active2,#mermaid-svg-3VOjyzQ34PyGS3zu .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-3VOjyzQ34PyGS3zu .activeText0,#mermaid-svg-3VOjyzQ34PyGS3zu .activeText1,#mermaid-svg-3VOjyzQ34PyGS3zu .activeText2,#mermaid-svg-3VOjyzQ34PyGS3zu .activeText3{fill:#000 !important}#mermaid-svg-3VOjyzQ34PyGS3zu .done0,#mermaid-svg-3VOjyzQ34PyGS3zu .done1,#mermaid-svg-3VOjyzQ34PyGS3zu .done2,#mermaid-svg-3VOjyzQ34PyGS3zu .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-3VOjyzQ34PyGS3zu .doneText0,#mermaid-svg-3VOjyzQ34PyGS3zu .doneText1,#mermaid-svg-3VOjyzQ34PyGS3zu .doneText2,#mermaid-svg-3VOjyzQ34PyGS3zu .doneText3{fill:#000 !important}#mermaid-svg-3VOjyzQ34PyGS3zu .crit0,#mermaid-svg-3VOjyzQ34PyGS3zu .crit1,#mermaid-svg-3VOjyzQ34PyGS3zu .crit2,#mermaid-svg-3VOjyzQ34PyGS3zu .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-3VOjyzQ34PyGS3zu .activeCrit0,#mermaid-svg-3VOjyzQ34PyGS3zu .activeCrit1,#mermaid-svg-3VOjyzQ34PyGS3zu .activeCrit2,#mermaid-svg-3VOjyzQ34PyGS3zu .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-3VOjyzQ34PyGS3zu .doneCrit0,#mermaid-svg-3VOjyzQ34PyGS3zu .doneCrit1,#mermaid-svg-3VOjyzQ34PyGS3zu .doneCrit2,#mermaid-svg-3VOjyzQ34PyGS3zu .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-3VOjyzQ34PyGS3zu .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-3VOjyzQ34PyGS3zu .milestoneText{font-style:italic}#mermaid-svg-3VOjyzQ34PyGS3zu .doneCritText0,#mermaid-svg-3VOjyzQ34PyGS3zu .doneCritText1,#mermaid-svg-3VOjyzQ34PyGS3zu .doneCritText2,#mermaid-svg-3VOjyzQ34PyGS3zu .doneCritText3{fill:#000 !important}#mermaid-svg-3VOjyzQ34PyGS3zu .activeCritText0,#mermaid-svg-3VOjyzQ34PyGS3zu .activeCritText1,#mermaid-svg-3VOjyzQ34PyGS3zu .activeCritText2,#mermaid-svg-3VOjyzQ34PyGS3zu .activeCritText3{fill:#000 !important}#mermaid-svg-3VOjyzQ34PyGS3zu .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-3VOjyzQ34PyGS3zu g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-3VOjyzQ34PyGS3zu g.classGroup text .title{font-weight:bolder}#mermaid-svg-3VOjyzQ34PyGS3zu g.clickable{cursor:pointer}#mermaid-svg-3VOjyzQ34PyGS3zu g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-3VOjyzQ34PyGS3zu g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-3VOjyzQ34PyGS3zu .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-3VOjyzQ34PyGS3zu .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-3VOjyzQ34PyGS3zu .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-3VOjyzQ34PyGS3zu .dashed-line{stroke-dasharray:3}#mermaid-svg-3VOjyzQ34PyGS3zu #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-3VOjyzQ34PyGS3zu #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-3VOjyzQ34PyGS3zu #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-3VOjyzQ34PyGS3zu #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-3VOjyzQ34PyGS3zu #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-3VOjyzQ34PyGS3zu #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-3VOjyzQ34PyGS3zu #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-3VOjyzQ34PyGS3zu #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-3VOjyzQ34PyGS3zu .commit-id,#mermaid-svg-3VOjyzQ34PyGS3zu .commit-msg,#mermaid-svg-3VOjyzQ34PyGS3zu .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-3VOjyzQ34PyGS3zu .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-3VOjyzQ34PyGS3zu .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-3VOjyzQ34PyGS3zu g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-3VOjyzQ34PyGS3zu g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-3VOjyzQ34PyGS3zu g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-3VOjyzQ34PyGS3zu g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-3VOjyzQ34PyGS3zu g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-3VOjyzQ34PyGS3zu g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-3VOjyzQ34PyGS3zu .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-3VOjyzQ34PyGS3zu .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-3VOjyzQ34PyGS3zu .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-3VOjyzQ34PyGS3zu .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-3VOjyzQ34PyGS3zu .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-3VOjyzQ34PyGS3zu .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-3VOjyzQ34PyGS3zu .edgeLabel text{fill:#333}#mermaid-svg-3VOjyzQ34PyGS3zu .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-3VOjyzQ34PyGS3zu .node circle.state-start{fill:black;stroke:black}#mermaid-svg-3VOjyzQ34PyGS3zu .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-3VOjyzQ34PyGS3zu #statediagram-barbEnd{fill:#9370db}#mermaid-svg-3VOjyzQ34PyGS3zu .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-3VOjyzQ34PyGS3zu .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-3VOjyzQ34PyGS3zu .statediagram-state .divider{stroke:#9370db}#mermaid-svg-3VOjyzQ34PyGS3zu .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-3VOjyzQ34PyGS3zu .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-3VOjyzQ34PyGS3zu .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-3VOjyzQ34PyGS3zu .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-3VOjyzQ34PyGS3zu .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-3VOjyzQ34PyGS3zu .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-3VOjyzQ34PyGS3zu .note-edge{stroke-dasharray:5}#mermaid-svg-3VOjyzQ34PyGS3zu .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-3VOjyzQ34PyGS3zu .error-icon{fill:#522}#mermaid-svg-3VOjyzQ34PyGS3zu .error-text{fill:#522;stroke:#522}#mermaid-svg-3VOjyzQ34PyGS3zu .edge-thickness-normal{stroke-width:2px}#mermaid-svg-3VOjyzQ34PyGS3zu .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-3VOjyzQ34PyGS3zu .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-3VOjyzQ34PyGS3zu .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-3VOjyzQ34PyGS3zu .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-3VOjyzQ34PyGS3zu .marker{fill:#333}#mermaid-svg-3VOjyzQ34PyGS3zu .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-3VOjyzQ34PyGS3zu {color: rgba(0, 0, 0, 0.75);font: ;}

ZMQ_STREAM
*..*
Native TCP socket
  1. ZMQ_STREAM相当于原生的socket
  2. 关闭和接收伴随着消息的收发

ZeroMQ史上最全的知识总结(一):常见的通讯模式相关推荐

  1. 史上最全《知识图谱》2020综述论文!!!

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 知识图谱是当下的研究热点.最近18位学者共同撰写了一篇<知识图谱>综述 ...

  2. 史上最全 | HBase 知识体系吐血总结

    史上最全 | HBase 知识体系吐血总结 本文转载大鱼的文章,原文地址:史上最全 | HBase 知识体系吐血总结 (qq.com) 如有侵权请私信删除: HBase 涉及的知识点如下图所示,本文将 ...

  3. 史上最全电子元器件知识讲解

    史上最全电子元器件知识讲解 2016-05-10 半导体行业观察 芯榜(IC行业排行榜) 芯榜 - IC服务平台,用数据读懂芯片业. 转载于:https://www.cnblogs.com/sunny ...

  4. 史上最全挤出模具知识汇总

    挤出模的调试 操作人员必须熟悉自己所操作的挤出机,要正确掌握螺杆的特性.加热和冷却的控制.仪表特性.牵引机的控制模具的结构及装配情况等,以便正确地掌握挤出工艺条件,正确地操作机器. 调试的一般操作步骤 ...

  5. 运筹说 第2期|史上最全运筹学知识学习路线图

      城市里四通八达的地铁线路,给我们的生活带来了极大便利.实际上,地铁线路模型也可以很好地体现在运筹学的知识体系中.   运筹学研究的内容十分广泛,针对不同性质的问题,运筹学都有着不同的解决方法,也因 ...

  6. 史上最全! 全球 22 种开源商业收入模式

    来源 | <开源观止> 作者|郭炜(郭大侠) 近些年来开源在全球成为越来越火爆的话题,越来越多的开源项目获得了大量的投资或者最终上市.开源是根据一些开源协议把代码公开在互联网上并拥有开源社 ...

  7. seat TCC 实战(图解_秒懂_史上最全)

    文章很长,而且持续更新,建议收藏起来,慢慢读! Java 高并发 发烧友社群:疯狂创客圈(总入口) 奉上以下珍贵的学习资源: 免费赠送 经典图书 : 极致经典 + 社群大片好评 < Java 高 ...

  8. 秒杀超卖 解决方案(史上最全)

    文章很长,建议收藏起来慢慢读!疯狂创客圈总目录 语雀版 | 总目录 码云版| 总目录 博客园版 为您奉上珍贵的学习资源 : 免费赠送 经典图书:<Java高并发核心编程(卷1)> 面试必备 ...

  9. Redis Cluster 实战 - 图解 - 秒懂 - 史上最全

    文章很长,而且持续更新,建议收藏起来,慢慢读! Java 高并发 发烧友社群:疯狂创客圈(总入口) 奉上以下珍贵的学习资源: 免费赠送 经典图书 : 极致经典 + 社群大片好评 < Java 高 ...

  10. Java NIO (图解+秒懂+史上最全)

    文章很长,建议收藏起来,慢慢读! Java 高并发 发烧友社群:疯狂创客圈 奉上以下珍贵的学习资源: 免费赠送 经典图书:<Java高并发核心编程(卷1)> 面试必备 + 大厂必备 +涨薪 ...

最新文章

  1. QT5.11 + VS2017 环境搭建
  2. 解决Mac上adb: command not found问题
  3. 基于Boost::beast模块的单元测试程序
  4. 【JQuery】 触发元素的change事件
  5. 重庆邮电大学计算机科学与技术培养方案,重庆邮电大学计算机科学与技术学院.doc...
  6. Java面试之锁-可重入锁和递归锁
  7. 谷粒商城:SPU管理规格显示404
  8. 【MapGIS】常见问题处理
  9. 网站访问统计分析工具之罗列比较
  10. 国内外免费sns源码程序大集合
  11. 辩证唯物主义和历史唯物主义思维导图 - 圣才
  12. 基于MATLAB的指纹识别系统仿真设计,基于Matlab的指纹识别系统的研究与实现
  13. 邓俊辉算法训练营第三期(带完整课件)
  14. [转载]荷香如歌_xing2516_新浪博客
  15. BugKu CTF(杂项篇MISC)—放松一下吧
  16. Redis数据库及五种数据类型的常用命令详解
  17. input type属性
  18. python语言中有哪些函数_Python语言中的函数
  19. Nokia5233手机和我装的几个symbian V5手机软件
  20. 最新界面很漂亮的在线工具箱,包含站长工具箱等等功能

热门文章

  1. Racket编程指南——2 Racket概要
  2. ROS2前置基础教程 | 小鱼教你用g++编译ROS2节点
  3. 项目成本管理-案例分享
  4. 微信小程序实现箭头方向转换与日历展开功能
  5. java获取pdf文字坐标_Java 获取PDF关键字坐标
  6. 基于CIM的新型智慧城市发展政策解析
  7. 坚果pro2刷回官方_锤子坚果Pro2刷魔趣、刷回官方踩坑记
  8. 迅盘技术(Robson)、Ready Boost和Ready Drive的区别
  9. 板岩 Steven Slate Audio :FG-2A 压缩评测
  10. gps性能测试软件,VisualGPSXP入门 专业GPS测试软件