RPC(远程过程调用)
基础过程:客户端发送函数调用请求以及相关参数至远程服务端,服务端计算完成结果返回给客户端的过程即RPC(远程过程调用)
详细框架思路:
RPC流程图:
过程描述:
1、当客户端产生一个需要调用远程服务器函数的请求时,利用诸如XML等java序列化协议将需要调用的函数名和相关参数序列化
2、利用相关的网络协议传输至API网关,API网关通过断言、过滤等服务方法对调用请求进行处理,如果不符合断言,则返回无效请求;如果满足断言和过滤条件,则向服务注册中心传递请求
3、服务注册中心通过相应的函数映射协议,获取相关的服务端地址,并通过路由返回
4、API网关通过负载均衡方法将函数请求分配至相应的服务器端,服务器端进行函数请求处理
5、API网关检查服务端是否正常调用返回,如果正常则进一步向回传递至Java反序列模块,如果请求异常,并且满足约定的一定时间超过n次异常的要求,则发生服务熔断,在服务熔断过程中,返回的是服务降级处理后的结果。
一定时间后服务器尝试熔断恢复,如果异常次数恢复到要求一下,则重新进行请求处理
6、返回的结果通过java反序列方法返回至客户端
RPC过程结束
技术选型:
java序列化/反序列化协议:XML、JSON、Thrift、Protobuf
服务注册:Eureka/Zookeeper
服务网关:Springcloud Gateway
服务熔断与降级:Hystrix
服务开发:Springboot
服务配置:Config
服务总线:bus
参考文章:
https://www.zhihu.com/question/25536695
https://www.cnblogs.com/fanBlog/p/10936190.html
尚硅谷2020Springcloud开发教学视频