總的來說,各個微服務之間的通信方式分為以下2種:
1、同步調用
同步調用也就是:調用方需等待執行方的調用結果 Dubbo的RPC方式(底層基於Netty實現,而Netty底層基於Java NIO,基於TCP建立的長鏈接) SpringCloud的Restful http方式,短連接的方式 性能方面:Dubbo > SpringCloud 【擴展知識】: BIO,NIO,AIO只是一種網絡通信模型 BIO:傳統的阻塞IO模式,為每個連接創建一個線程 NIO:一個線程服務多連接,弊端是當連接數過多,性能下降 Netty: 封裝了NIO,在它的基礎上,添加主從處理組,BoosGroup和WorkerGroup
2、異步調用
異步調用也就是:調用方無需等待執行方的執行結果
典型的就是消息隊列(MQ)
主流的消息隊列框架:Kafka,ActiveMQ,RocketMQ等