所有的微服务都是独立的Java进程跑在独立的虚拟机上,通信方式有RPC,REST,异步通信。下面我们来看什么情况采取什么样的方式最合适。
【微服务】服务通信

RPC

RPC在微服务中的应用:
1、提高调用方与提供方开发效率;
2、让调用方感觉就像调用本地函数一样调用远端函数,提供方感觉就像实现一个本地函数一样实现服务。

RPC框架

【微服务】服务通信

RPC解决的问题

提供一种透明调用机制让使用者不必显式区分本地调用和远程调用。
服务化的好处就是,不限定服务提供方使用什么技术选型,能够实现大公司跨团队的技术解耦。
如果没有统一的服务框架,RPC框架,各团队的服务提供方就需要各自实现一套序列化、反序列化、网络框架、连接池等“业务之外”的重复技术劳动,造成整体低效。

REST

接口规范,操作对象即资源,参数都放在URL上。

总结

Rest调用及测试都很方便,Rpc就有点麻烦,但是Rpc的效率相对较高,所以建议多系统间调用采用RPC,例如Dubbo,在生产者和消费者两微服务之间通信用的就是RPC;对外提供服务,使用REST很合适。

相关文章: