spout:噴嘴、噴口。即資料從這裡發出。
spout是storm的資料來源,而spout的資料來源又是從其他地方,比如資料庫或者消息中間件中流入的。
以Kafka為例,spout先從kafka中拉取資料,然後封裝為一個tuple,發給下遊的bolt進行處理。對于Kafka來說,spout是消費者;對于bolt來說spout是生産者。
為什麼要用spout去拉取消息,而不是直接由bolt接收推送的資料呢,這中拉模式有什麼好處呢?
如果,将資料直接推送給bolt,當資料量突然增加的時候,可能導緻某一個bolt癱瘓,繼而影響整個topology運作;而當沒有資料的時候,整個topolog又處于空閑狀态,浪費資源。而由spout去拉取消息則不會出現這樣的問題。
kafkaspout的所有配置項:
具體含義在後面會總結。
參考資料:
《storm技術内幕與大資料實戰》
網絡上志同道合,我們一起學習網絡安全,一起進步,QQ群:694839022