簡體   English   中英

延遲與解耦架構建議

[英]Latency vs decoupling architecture advice

我正在設計一個系統架構。(Java EE / Spring)

這個系統的主要因素是低延遲 。(從端到端談論1毫秒和更少)

我們為這個實時系統規划了幾個組件。

我向您提問的問題:我知道耦合和解耦的所有優點(故障轉移,分離,維護,擴展等......)

我面臨的問題是:

例如,假設我在機器A(app1)和機器B(app2)上的應用程序中有兩個不同的應用程序。

請求必須通過兩台機器。 兩台機器處理完請求后,最終答案將發送給客戶。

這兩者之間的集成延遲肯定會高於將這些應用程序放在同一台機器上(網絡時間等)。

另一方面,我可以自己更新和維護每個應用程序,而不依賴於同一台機器。 同樣適用於故障轉移,群集,負載平衡

你有什么建議我的? 我應該考慮什么? 延遲與解耦和維護

謝謝,雷。

請求必須通過兩台機器。 兩台機器處理完請求后,最終答案將發送給客戶。

它可以增加0.1到0.2毫秒。 這可能是可以接受的。

另一方面,我可以自己更新和維護每個應用程序,而不依賴於同一台機器。

您更有可能更新軟件而不是硬件。 Hadrware通常可以在非高峰時段更新,如周末

同樣適用於故障轉移,

您擁有的機器越多,您擁有的故障點就越多。

集群

如果您在一台計算機上擁有所有內容,則可能不需要群集。

負載均衡

如果您需要使用多台機器,這會更有意義。

如果您有一個Web應用程序1毫秒是相當激進的目標。 如果你有一個網絡服務,如交易系統亞毫秒或甚至低於100微秒,可以根據你的要求實現。

處理相同請求的機器越多,延遲就越多 - 這是顯而易見的。 此外,消除應用程序之間的所有邊界 - JVM,線程,並將它們實現為在同一線程上順序調用的2個過程。

在一種情況下,更多的機器可以減少延遲:分配負載,從而在一台機器上釋放資源(處理器),以消除擁塞。 讓不同的工具(貨幣,股票)在不同的機器上交易。

暫無
暫無

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

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