根據您的體系結構,您可以使用一些非常酷的軟件,如CoreOS的Weave(https://github.com/weaveworks/weave)。我們使用Docker將我們的應用程序分發到CoreOS節點,然後內部DNS由Weave處理。
這真的很棒,因爲我們只需將端口轉發到應用程序名稱,然後我們即將離開。
例如,一個用戶請求application.com/api/apiName/request/path
我們的網關與節點來實現。js,並且它使用/ api之後的apiName將其路由到該api,然後將該URL的以下路徑附加到該調用本身。
所以來自網關的請求將作爲apiName:8080/request/path在內部被代理。在這方面,當新服務出現時,API不需要更改,因爲路徑是根據請求動態創建的。
這很好,因爲我們不必擔心跟蹤來自不同API的路徑並將它們存儲在某處。
如果不是這樣,您將不得不維護一些(可能是外部的)端點列表,以使其更容易。這可以通過API本身以編程方式完成。
但是,我不確定你的要求是什麼,而且正如威爾所回答的那樣,它的確會產生相當大的基礎設施成本。然而,我們的版本是快速和無痛的,因爲我們不必擔心在多個層次上進行代碼更改,新的API可以免費獲得我們的網關代理,日誌記錄和認證。
來源
2016-09-13 18:43:26
tcd
API網關就像一個安全的代理+日誌記錄。您可以將url傳遞給您想要訪問的「產品」服務,網關將代理它。 – sed