微服务的调用和接口
微服务的调用:
微服务也是服务,我们一般认为微服务都是不同的实例提供的。这些实例通常和调用者运行在不同的进程中(根据部署模式不同,多个微服务实例到是有可能在一个进程中部署)。
当然,服务的消费者和服务实例本身,也可能是运行在同一个进程中,出现这种情况的目的可能是因为性能的需要,在J2EE、CORBA等时代,这些也是要设计和考虑的,但是,作为架构模式,微服务本来就是一种解耦的架构模式,大家也就基本上不考虑这种情况了。
在知道服务实例的位置的前提下,单纯从服务的消费者发起调用,到服务实例提供服务,再到服务消费者拿到结果的侠义范围来看,微服务其实就类似我们传统的RPC调用。微服务的范围当然包含更广泛的内容,我们把其他的先放在一边,先从PRC这个维度研究一下微服务的知识。
典型的调用过程如下:
服务函数下面的生命周期管理,序列化机制,应用层承载协议,以及TCP/IP通信都是为了模拟函数本地的调用场景,最终都是为调用一次服务函数而服务。
而举一个典型的本地调用函数的例子就类似:
function method_a(param1 : type1, param2 : type2) :type-of-result