簡體   English   中英

Zmq隨機接收和回復

[英]Zmq for random recv and reply

關於Zmq,我有兩個問題:

1)我正在實現一個服務器,該服務器每分鍾將接收10K個請求,然后將這些請求重定向到后端。 從后端獲取響應后,它將發送回響應。 我不能使用request / reply,因為這種模式的限制是recv / reply應該是同步的。 誰能建議我在這種情況下使用什么。

2)我是否還需要在其中實現多線程。

提前致謝。

如果需要多線程,首先讓我回答問題1-性能要求和問題2

ZeroMQ傳輸開銷時間大約是多少?

通過瑣碎的性能測試,有意地添加了TCP傳輸包裝開銷,您可能會發現[usec]每發送一條消息,就會發現ZeroMQ消息處理層的“成本”。

                         21.936  [usec]/MSG
                        111.280  [usec]/MSG
                         39.714  [usec]/MSG
                         37.080  [usec]/MSG
                         11.351  [usec]/MSG

要了解有關郵件批量大小減輕影響的想法,請讓我們閱讀帶有增長大小的重新測試

>>> [ sender( nBatchSIZE = x ) for x in ( 1, 10, 100, 1000, 10000, 100000, 1000000 ) ]

sent       1 ... RUN took:       58  [usec] i.e.  58.0  [usec]/MSG
sent      10 ... RUN took:      156  [usec] i.e.  15.6  [usec]/MSG
sent     100 ... RUN took:     1071  [usec] i.e.  10.7  [usec]/MSG
sent    1000 ... RUN took:    10561  [usec] i.e.  10.5  [usec]/MSG
sent   10000 ... RUN took:   106478  [usec] i.e.  10.6  [usec]/MSG
sent  100000 ... RUN took:  1333242  [usec] i.e.  13.3  [usec]/MSG

根據這些數據,您的Q1系統在合理大小的MSG上不會出現10k / min的事件流問題(更不用說多GB BLOB了)

因此,處理性能受到后端階段的限制

關於第二季度使用建議:

因此, REQ/REP不在表格中。 與其嘗試使用任何性能可擴展的方法來提高端到端處理能力,不如使用多線程,而是使用更高級的負載均衡器方案,例如REQ/ROUTER||ROUTER/REQ等,都可以提高性能。處理速度並添加一些故障解決功能。 檢查單集群和多集群體系結構中的樣本瑣碎結構

對於您的消息量,這完全取決於消息的大小。 假設消息大小大致為“典型”(例如,通常多達幾百個字節),並且該系統可以處理該吞吐量(例如,如果要預加載消息而不是通過ZMQ接收消息,它將處理您的消息量)效率足夠高?),那么您就不會每分鍾發送10k消息就大汗淋漓。 您可能每秒都可以這樣做(如您在其他答案中所見)。

ZMQ將支持您想要的任何消息模式,但是您必須提供更多信息來確定哪種模式最適合您。 有很多的很好的例子引導

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM