我用 chess.js 和 java 國際象棋庫建立了一個網站,通過 gRPC 和 python 與自定義 c 國際象棋引擎進行通信。我是 Web 開發新手,尤其是 gRPC,所以我不確定在托管方面我應該采用的架構。
我的問題如下:
網站和 gRPC 服務是否需要托管在單獨的服務器實體上并通過 API 連接?
- 現在一切都在本地托管,我現在使用兩個埠(5000 用于網站,8080 用于服務器)。如果站點和服務器不是分開的,這是它們在單個服務器(一個本地埠)上相互通信的方式嗎?
我使用這個網站只是為了展示我的求職作品集,所以我正在尋找免費/便宜的主機,它還提供了不錯的 RAM 可用性,因為 c 國際象棋引擎的計算量相當大。有人對我應該使用什么托管服務有任何建議嗎?
- 我正在考慮為該網站提供免費托管,然后為該服務提供一個便宜的專用服務器(如果兩者應該分開的話)。這是一個壞主意嗎?
采取任何人必須提供的所有提示和技巧。同樣,對于網路開發、托管、服務器等完全是新手。
uj5u.com熱心網友回復:
注意這是一個體系結構而不是一個編程問題,不鼓勵堆疊溢位。
網站和 gRPC 服務可能托管在同一臺服務器上(就像您在本地所做的那樣)。您可以靈活地在單個更強大的主機上或分別在兩臺主機上運行這兩個行程(網站和 gRPC 服務)。
注意盡管 gRPC 通常通過 TCP 套接字進行通信,但也可以使用 UNIX 套接字甚至緩沖記憶體。
如果您在單個主機上運行這兩個行程,您將需要考慮通過 localhost(127.0.0.1 或環回設備)將網站連接到 gRPC 服務。使用 localhost,網路流量不會離開主機。
如果您在不同的主機上運行這兩個行程,則流量必須通過網路傳輸。這速度較慢,并且在托管時可能會產生費用。
您需要決定 gRPC 服務是否應該暴露給您的網站以外的任何網路流量。在許多情況下,gRPC 服務用于提供 API 以促進第 3 方的集成。如果您絕對不希望 gRPC 服務被其他事物訪問,那么您需要確保它系結到 localhost(見上文;因此除了其他行程(例如主機上的網站)之外的任何東西都無法訪問)或防火墻這樣只有網站被允許向其發送流量。
您可以找到廉價的虛擬機 (VM) 托管,并且您可能需要考慮將兩個行程托管在單個 VM 上,確保限制您支付的資源并確保流量安全(如上所述)。
您可能希望考慮將應用程式容器化。在這種情況下,雖然可以在單個容器中運行兩個行程,但這被認為不是好的做法。因此,您應該考慮 2 個容器(網站和 gRPC 服務器)。許多托管|云平臺提供容器托管,這通常比管理虛擬機更容易(因為您不需要修補|更新作業系統和任何依賴項)。如果您可以找到一個接受 Docker Compose 描述或 Kubernetes 部署的平臺,您可以在其中描述您的服務以及它們如何互動,這樣 gRPC 服務只能由網站訪問,那可能是理想的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/405868.html
標籤:
