客戶機發送UDP請求到我們的服務器。服務器處理每個請求併發送響應。事務的邏輯要求客戶端在發送新請求之前等待響應。互聯網延遲是否將我的客戶端限制在每小時12萬次同步交易?
即使客戶端和服務器計算機上的所有處理是瞬時的,看來我們的客戶仍然需要平均約30毫秒只是發送/在互聯網上收到一個往返處理。 (這是在光的速度行駛約5580英里。)
這是否意味着,平均一個給定的客戶不能做到每小時超過120,000同步交易嗎?
1交易=0.030秒最低
120K交易=1小時
客戶機發送UDP請求到我們的服務器。服務器處理每個請求併發送響應。事務的邏輯要求客戶端在發送新請求之前等待響應。互聯網延遲是否將我的客戶端限制在每小時12萬次同步交易?
即使客戶端和服務器計算機上的所有處理是瞬時的,看來我們的客戶仍然需要平均約30毫秒只是發送/在互聯網上收到一個往返處理。 (這是在光的速度行駛約5580英里。)
這是否意味着,平均一個給定的客戶不能做到每小時超過120,000同步交易嗎?
1交易=0.030秒最低
120K交易=1小時
延遲
的影響,因爲你必須序列您的要求,延遲會限制你的成交率。
然而,光計算速度是理論上的最佳情況下的運送時間。在現實生活中,沿途有路由器會增加延遲。
確保並測量在不同的點實際的ping時間在一天,數天,以獲得真正的延遲數。
由於客戶端和服務器端的代碼會低於零的時間過程,並且處理時間很可能是至少不亞於等待時間(這取決於你在做什麼),它可能不太現實假定處理時間接近零。
克服延遲
這些天來,有一些相當便宜的方式把你的服務器(或你的架構的至少一個層)更接近你的客戶。例如,您可以考慮使用服務(如AWS)將處理資源放置在與您的客戶接近的地理位置。然後你可以給例如West Coast客戶使用的網址不同於東海岸的客戶,或者您可以使用地理負載平衡,以便每個人都可以使用相同的URL(您的負載平衡服務將流量路由到全球最佳服務器)。過去,我已成功使用UltraDNS作爲此目的。
很明顯,交易限制是這裏的限制:引用「客戶(有)在發送新請求之前等待響應。」 –
@ Steve-o:也許我應該在回答問題之前完成第一杯咖啡。閱讀過去。我會適當更新。 –
問什麼區別客戶:爲什麼不能在客戶假裝是多個客戶端,並有多個並行的,但每個單獨的串行數據流的交易。 –
@史蒂夫 - O:他們不能假裝,因爲他們通過帳號登錄,如果舊的交易完成之前的帳戶發送一個新的交易系統可以告訴。 –