2017-06-06 75 views
0

我正在看藍色混合上的消息集線器的nod​​e-js快速示例,並且爲什麼我需要從我的服務器輪詢消息集線器而感到困惑。我認爲pub-sub模型背後的全部想法是,我不必(加載)我的服務器輪詢消息服務,以確定是否存在新消息供我使用。在提供的例子,線211-213在app.js文件包含以下內容:爲什麼我需要輪詢消息中心?

// Set up an interval which will poll Message Hub for 
    // new messages on the 'livechat' topic. 
    produceInterval = setInterval(function() { ...},250); 

這現在有我的服務器輪詢消息樞紐每250毫秒時,我要的是完全避免輪詢模式,並當消息存在讓我消費時,由消息中心通知。

回答

2

簡而言之: 卡夫卡通過使用消費者拉模型而不是服務器推送來實現其可擴展性。

詳細信息: 首先值得通過卡夫卡文檔。 特別是你的問題在這裏得到解答 http://kafka.apache.org/documentation/#design_pull

HTH, 江戶時代

+0

很好的答案和感謝您的參考。我曾經通過API材料,但還沒有閱讀推拉對比的設計部分。 –

1

隨着KafkaConsumer投票()函數,意味着你的應用程序是輪詢客戶端緩存,在網絡上並不一定投票給卡夫卡經紀人。 Kafka客戶端通常在此客戶端緩衝區中預取和緩存數據,以獲得更好的性能,更低的延遲和更好的網絡效率。

如果你想要一個將數據「推送」到你的應用程序的異步回調風格接口,那麼包裝輪詢接口非常容易,並且使它看起來像一個推動。最終,每個推送API都有一些隱藏在tcp套接字上調用poll的封面。

相關問題