赞
踩
前言:本文为黑马视频总结笔记,主要介绍了为rpc通信的概念,以及设计rpc框架需要考虑到的技术要点概览,适合初学者,很多细节没有解释到,在日后会慢慢补充
---------------------------------------------------------------------------------------------------------------------------------
RPC概述
1.什么是RPC?
RPC的主要功能目标是让构建分布式计算(应用)更容易,是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议规范,简单的来说就是像调用本地服务一样调用远程服务,对开发者而言是透明的。
一句话概括:RPC是一种远程调用技术,能极大地简化分布式应用的开发
2.为什么用RPC
---------------------------------------------------------------------------------------------------------------------------------
RPC框架架构分析
RPC框架的工作流程:
客户端:
①client通过代理的方式触发调用模块,调用模块根据自己应用的需求完成内部的任务分发,封装请求内容
②将请求内容序列化二进制流
③根据传输的协议进行编码工作
④网络传输
服务端:
①网络接收
②根据约定好的网络协议进行解码工作
③将二进制网络数据进行反序列化
④根据内容,调用服务端对应的服务
---------------------------------------------------------------------------------------------------------------------------------
RPC框架实现要点
随着业务的复杂与技术的发展,RPC框架的内容日趋丰富,目前主要的技术内容有:注册中心、代理技术、序列化、rpc通信协议、系统IO、线程模型、超时监测机制、负载均衡策略、保护机制
注册中心:
作用:
代理技术:
为什么要用代理?
序列化:
为什么需要序列化?
rpc通信协议:
RPC通信可以采用公有的http协议,也可以采用自定义的通信。不论采用何种通信协议,最终目的还是尽可能提高通信效率。
一般情况狂下不会采用公有的http传输方式,一是因为http是超文本传输协议,本身就是在TCP协议上的上层应用,内部封装了很多其他不必要的传输内容,比如请求头的许多信息,再者,http的传输本身建立在TCP建立成功的基础之上,在http1.0的版本,每次请求都会关闭链接,从而增加网络开销。
系统IO:
线程模型:
超时监测机制:
1.扫描任务集合
缺点:很多无意义的遍历操作,浪费cpu
2.时间轮算法
一句话解释时间轮:就是把未来执行的任务放到对应的位置,到了时间去检测该位置上的任务有没有被执行。时间轮形成闭环,不同的时段,在相同位置,我们采用数组+链表方式存储任务。
负载均衡策略:
保护机制:
熔断:
限流
作用:实际生产环境中,每个服务节点都可能由于访问量过大而引起一系列问题,就需要业务提供方能够进行自我保护,从而保证在高访问量、高并发的场景下,系统依然能够稳定,高效运行。限流器的作用是用来限制其请求的速率,保护后台响应服务,以免服务过载导致服务不可用现象出现。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。