[英]Which architecture to use for multiple small specific servers and a centralized one?
首先:我是新手。 這是我第一次在一個重要的項目中工作。
這是我的計划:
現在的工作原理:銼刀的狀態基於連接到同一台計算機的其他銼刀。 計算機有一個算法來計算這些狀態。
rasp 還每秒生成數據,並使用 http 請求將其直接發送到服務器。
服務器根據 rasp 屬性向用戶顯示一個頁面,用戶希望在其中訪問 rasp 狀態、內存負載、相機流並發送命令。
每台新計算機都需要在服務器計算機上注冊,每台計算機和 Rasp 屬性也是如此。
因此,如果我向銼刀添加新相機,則需要有人更新服務器數據庫。
這種方法的可擴展性不是很強。 我的目標是一個非常可擴展的解決方案。 所以,我在考慮:
OBS:在當前狀態下,所有的銼刀、計算機和服務器都在一個 VPN 中。
你為什么要打擾中間的計算機/數據庫? 讓 Raspberry 向中央服務器發出 HTTP 請求以“注冊”自己,並讓它定期將其內容發送到該中央服務器。
如果負載過多,則將該集中式服務器拆分為應用程序/數據庫層並平衡應用程序層的負載。 如果數據庫上的負載仍然過多,請重新構建數據庫。
擁有多個“真相”來源是應用程序設計的最大缺陷之一。 不要試圖同步解決這個問題,只需創建一個事實點。 如果您需要將集中式數據庫擴展得更高,那么請查看適合該目標的解決方案,例如 NoSQL 解決方案,而不是嘗試將其分發給客戶端。
在這種方式下,是向計算機發送信息還是向服務器索取信息比較好?
讓服務器在需要的時候請求數據……什么時候可以! 如果計算機隨時發送數據,則您的服務器可能存在性能問題。
服務器可以通過數據庫同步訪問計算機數據庫(我需要對此進行更好的研究)。 因此,對單個 API 不適用,只有與服務器同步的單個數據庫。
嘗試僅進行單向復制,因此請確定用於計算機數據的表,不要將它們寫入服務器上。 數據庫復制可能是信息共享的一種解決方案,但由於模式結構,它意味着系統的重度耦合。 隔離共享表。
建議?
每台新計算機都需要在服務器計算機上注冊
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.