簡體   English   中英

REST API托管在多個服務器上

[英]REST API hosted on multiple servers

我有一個需要幫助的問題(我以前從未遇到過這個問題,以前也找不到任何相關問題)。

php中的應用程序托管在名為01.example.com, 02.example.com類的不同服務器上

現在,有許多使用此應用程序的客戶端(用PHP編寫的軟件即服務),每個客戶端都在一個特定的服務器上托管自己的數據庫-客戶端A數據庫位於01.example.com ,客戶端B數據庫位於02.example.com (哪個客戶端屬於哪個服務器存儲在共享數據庫中)

我想創建一個類似URL的REST API http://HOST/api/resourceshttp://01.example.com/api/resourceshttp://02.example.com/api/resources

如何使api URL / URI獨立於( http://example.com/api/resources )這樣的主機?

我可以想到幾種解決方案-

  1. 收到第一個請求后,從共享數據庫中獲取客戶端的服務器位置,然后發送重定向。
  2. 或在使用REST時(例如http://01.example.com/api/resources要求客戶端提供用戶服務器特定的URL / URI。 (但是,當客戶端遷移到其他服務器時,他們的代碼將中斷,直到他們將URL更改為新服務器為止)

這聽起來可能令人困惑(對我也是如此),但我發現很難為這種情況設計解決方案。

您可以在URL中添加應用程序ID(或客戶端ID或您要選擇數據庫的標識符),例如http://example.com/1/api/resourceshttp://example.com/2/ api / resources並通過NGINX,haproxy,F5或任何其他代理或路由器重定向所有HTTP請求。 問題在於,每次遷移應用程序時,您都必須重新配置代理。

通常,如果您可以將所有這些數據庫合並到一個數據庫中,則可以節省很多麻煩。 如果出於性能原因分離數據庫,請考慮對所有只讀請求使用只讀從屬。

更多REST API服務器指南: http : //example.com/1/api/resources

暫無
暫無

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

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