总的来说,各个微服务之间的通信方式分为以下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等