簡體   English   中英

Streaming API vs Rest API?

[英]Streaming API vs Rest API?

這里的規范示例是Twitter的API。 我從概念上理解REST API是如何工作的,本質上它只是一個查詢服務器,用於您的特定請求,然后您可以接收響應(JSON,XML等),非常好。

但是,我不確定流API如何在幕后工作。 我理解如何消費它。 例如,Twitter聽取回復。 從響應中聽取數據,並在其中發送推文。 在字符串緩沖區中構建塊並等待表示Tweet結束的換行符。 但他們正在做些什么來使這項工作?

假設我有一堆數據,我想在本地設置一個流API,供網絡上的其他人使用(就像Twitter一樣)。 這是怎么做的,有哪些技術? 這是Node JS可以處理的嗎? 我只是想繞過他們正在做的事情來使這件事發揮作用。

Twitter的流API是它本質上是一個長時間運行的請求,它保持打開狀態,數據在它可用時被推送到它。

這種情況的后果是服務器必須能夠處理大量並發的開放HTTP連接(每個客戶端一個)。 許多現有的服務器管理得不好,例如Java servlet引擎為每個請求分配一個線程,這可能會(a)變得非常昂貴,並且(b)快速達到正常的最大線程設置並阻止后續連接。

正如您所猜測的那樣,Node.js模型比使用servlet模型更符合流式連接的想法。 請求和響應都作為Node.js中的流公開,但不占用整個線程或進程,這意味着只要數據保持打開狀態就可以繼續將數據推送到流中,而不會占用過多的資源(盡管如此是主觀的)。 從理論上講,您可以將大量並發開放響應連接到單個進程,並在必要時僅寫入每個進程。

如果你還沒有看過它,那么Node.jsHTTP文檔可能會有用。

我還要看一下technoweenie的Twitter客戶端 ,看看該API的消費者端是什么樣的Node.js, 特別是stream()函數

暫無
暫無

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

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