簡體   English   中英

哪個架構用於多個小型特定服務器和一個集中式服務器?

[英]Which architecture to use for multiple small specific servers and a centralized one?

首先:我是新手。 這是我第一次在一個重要的項目中工作。

這是我的計划:

在此處輸入圖片說明

現在的工作原理:銼刀的狀態基於連接到同一台計算機的其他銼刀。 計算機有一個算法來計算這些狀態。

rasp 還每秒生成數據,並使用 http 請求將其直接發送到服務器。

服務器根據 rasp 屬性向用戶顯示一個頁面,用戶希望在其中訪問 rasp 狀態、內存負載、相機流並發送命令。

每台新計算機都需要在服務器計算機上注冊,每台計算機和 Rasp 屬性也是如此。

因此,如果我向銼刀添加新相機,則需要有人更新服務器數據庫。

這種方法的可擴展性不是很強。 我的目標是一個非常可擴展的解決方案。 所以,我在考慮:

  • 每台計算機都有一個單獨的數據庫和一個 API 響應 http 請求。 該數據庫保存銼刀信息,如攝像機、當前狀態等...
  • 在這種方式下,是向計算機發送信息還是向服務器索取信息比較好?
  • 服務器可以通過數據庫同步訪問計算機數據庫(我需要對此進行更好的研究)。 因此,對單個 API 不適用,只有與服務器同步的單個數據庫。
  • 建議?

OBS:在當前狀態下,所有的銼刀、計算機和服務器都在一個 VPN 中。

你為什么要打擾中間的計算機/數據庫? 讓 Raspberry 向中央服務器發出 HTTP 請求以“注冊”自己,並讓它定期將其內容發送到該中央服務器。

如果負載過多,則將該集中式服務器拆分為應用程序/數據庫層並平衡應用程序層的負載。 如果數據庫上的負載仍然過多,請重新構建數據庫。

擁有多個“真相”來源是應用程序設計的最大缺陷之一。 不要試圖同步解決這個問題,只需創建一個事實點。 如果您需要將集中式數據庫擴展得更高,那么請查看適合該目標的解決方案,例如 NoSQL 解決方案,而不是嘗試將其分發給客戶端。

在這種方式下,是向計算機發送信息還是向服務器索取信息比較好?

讓服務器在需要的時候請求數據……什么時候可以! 如果計算機隨時發送數據,則您的服務器可能存在性能問題。

服務器可以通過數據庫同步訪問計算機數據庫(我需要對此進行更好的研究)。 因此,對單個 API 不適用,只有與服務器同步的單個數據庫。

嘗試僅進行單向復制,因此請確定用於計算機數據的表,不要將它們寫入服務器上。 數據庫復制可能是信息共享的一種解決方案,但由於模式結構,它意味着系統的重度耦合。 隔離共享表。

建議?

  • 使用支持復制的數據庫(mySql 可以,我認為),不要編寫自己的系統
  • 計算/聚合/調整計算機上的數據,使服務器的工作更輕松

每台新計算機都需要在服務器計算機上注冊

  • 看看像 Consul 這樣的工具

暫無
暫無

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

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