Skip to Main Content
高效能PYTHON程式設計
book

高效能PYTHON程式設計

by Micha Gorelick, Ian Ozsvald
August 2015
Intermediate to advanced content levelIntermediate to advanced
384 pages
7h 42m
Chinese
GoTop Information, Inc.
Content preview from 高效能PYTHON程式設計
叢集與任務佇列
|
291
息重新發送給另一個消費者,這表示,即使消費者被關閉,我們知道某個主題裡的全部
訊息至少會被回應一次
2
消費者 消費者
10-2 NSQ 連接拓樸
分散式質數計算
使用 NSQ 的程式碼一般是非同步的
3
(完整的解釋請參閱第 8 章),但不必然如此。在
下列範例裡,我們將建立讀取名為
numbers
之主題的工作者緩衝池,在當中,訊息單純
是裡頭包含數字的 JSON blob(二進制大型物件)。消費者將讀取這個主題,判斷數字
是否為質數,然後,根據質數與否,再寫到其他主題。這給予我們兩個新主題,
primes
non_primes
,其他消費者能夠連接上來,以便進行更多計算
4
如先前所述,像這樣處理計算密集型的工作有很多好處。首先,我們可以保證強健性,
對這個專案來說,這可能有用,也可能沒用。不過,更重要的是,我們獲得了自動負載
平衡,那表示,假如有一個消費者拿到需要花特別長時間處理的數字,其他消費者將適
時地補上這個空缺。
我們透過建立
nsq.Reader
物件(指明主題與訂閱群組,如範例 10-10 的末端所示)來創
造消費者,我們也必須指定執行
nsqd
實例(或者
nsqlookupd
實例,我們不會在這一節談
到它)的位置。另外,我們指定
處理器
handler
),這只是針對該主題的每個訊息被呼
2 當我們在 AWS 裡工作時,這可能十分有利,在當中,我們可以讓
nsqd
行程執行在預留執行個體
reserved instance),而讓消費者運作在競價型執行個體(spot instance ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

流畅的Python

流畅的Python

Luciano Ramalho
手把手教会你linux

手把手教会你linux

桑德.范.乌格特

Publisher Resources

ISBN: 9789863477105