我的專案開發裡預計會有幾個docker容器所構成的一個微服務系統,本來想讓它們之間使用Restful API來溝通,但想請問一下,如果都改成使用websocket來溝通的話,這樣適合嗎?有沒有要注意的地方?謝謝
註:我的微服務之間傳輸的資料量不會很大
Websocket 適合用在:
持續且快速的資料傳遞 (例如: 股票盤中即時報價)
需要快速且雙向傳遞資訊
需要儲存或記憶狀態的通訊 (Stateful)
需要快速處理的情境
缺點:
不適合用在隨時會 Scale-out/in 的系統
不容易做出 Data Cache 機制
在 OSI Layer 較低的層次運作, 不易製作出複雜協定
RESTFul 適合用在:
非持續性, 以需求為導向的請求
需要做到 CRUD 交易管裡的資源
很容易適應 Scale-out/in 的動態調整
容易做出 Data Cache 機制
在較高的 OSI 層次運作, 可以編制出較複雜協定
缺點:
發動成本高, 每次傳輸都須要先拆解 HTTP 協定
無狀態 (Stateless) 通訊
不過, 小系統若要完全無視以上分析, 隨便用, 也是可以;
畢竟系統規模要大到某個程度以上, 才會有明顯的差別....