我正在爲微服務系統繪製一個架構,計劃在一臺機器上運行(可能在未來發布)。 系統將由編寫在Node.js,GO和可能是Java的服務組成。 node.js和Java都需要傳遞指令並從GO服務器接收結果。我爲什麼要用gRPC代替IPC/Simple websocket?
現在,我試圖決定是否應該使用IPC管道或在gRPC和protobuff上使用它們。
我正在爲微服務系統繪製一個架構,計劃在一臺機器上運行(可能在未來發布)。 系統將由編寫在Node.js,GO和可能是Java的服務組成。 node.js和Java都需要傳遞指令並從GO服務器接收結果。我爲什麼要用gRPC代替IPC/Simple websocket?
現在,我試圖決定是否應該使用IPC管道或在gRPC和protobuff上使用它們。
這些是在不同的抽象層次上,有不同的用途,因爲問題中的'或'是錯誤的。 即使您重新實現其中一個,您也需要類型(傳輸和編碼)。
IPC像匿名或命名管道通常稱爲傳輸,他們沒有辦法編碼多個指令或結果(雖然他們編碼字節流)。
gRPC和protobuf需要一個傳輸,支持多個傳輸並添加更多細粒度的編碼(如何表示一個整數,一個列表等),並可能更多地在頂部。支持對某些東西進行編碼的技術通常可以使用傳輸或編碼進行嵌套,這對於與HTTP一起使用的技術來說很常見,這可能有意義,但可能僅在沒有使用的情況下才添加圖層。
感謝您的澄清 - 我想我需要重述。 – YafimK
首先要做的是:節點是否有grpc/protobuf客戶端庫?如果不是這個問題是沒有意義的。 – RickyA