其他分享
首页 > 其他分享> > 微服务框架服务调用与容错

微服务框架服务调用与容错

作者:互联网

微服务框架服务调用与容错

本章主要介绍服务调用的方式:同步调用、异步调用、并行调用、泛化调用等。

一、服务调用概述

    简单介绍了RPC框架的调用方式:同步调用和异步调用。服务调用方式按照不同的维度区分,有不同的命名方法,抛开技术不谈,我们还可以把服务调用分为3种:OneWay模式(单向操作)、请求应答模式、回调模式(Call Back)。

1. OneWay模式(单向操作)

简单来说,单向操作没有返回值,客户端只管调用,不管结果,例如消息通知,如图8-1所示。

2. 请求应答模式
请求应答模式是默认的操作模式。这与经典的C/S编程类似,客户端发送请求,阻塞客户端进程,服务端返回操作结果,如图8-2所示。

3. 回调模式
服务1调用服务2,并立即收到响应。服务2处理服务1的业务请求,处理完成后调用服务1提供的回调接口,具体如图8-3所示。

 

二、服务调用方式

  1、同步服务调用

   

同步调用是分布式微服务架构中最为常用的一种调用方式。客户端调用服务端方法,等待直到服务端返回结果或者超时,再继续自己的操作。同步调用结合RPC框架的工作原理如图8-4所示。
(1)服务A以本地调用方式调用服务B(依赖服务B接口,以接口的方式调用)。
(2)客户端存根(Client Stub)接收到调用请求后,负责将方法、参数等组装成能够进行网络传输的消息体(将消息体对象序列化为二进制)。
(3)客户端通过Sockets将消息发送到服务端。
(4)服务端存根(Server Stub)收到消息后对消息进行解码(将消息对象反序列化)。
(5)服务端存根(Server Stub)根据解码结果调用本地的服务(利用反射原理)。

(6)服务B执行并将结果返回给服务端存根(Server Stub)。
(7)服务端存根(Server Stub)将返回结果打包成消息(将结果消息对象序列化)。
(8)服务端(Server)通过Sockets将消息发送到客户端。
(9)客户端存根(Client Stub)接收到结果消息,并进行解码(将结果消息反序列化)。
(10)服务A得到最终结果。

标签:Stub,调用,服务,容错,存根,服务端,客户端
来源: https://www.cnblogs.com/callbin/p/14600290.html