RPC
文章平均质量分 78
斑马工
别在最好的年纪,选择安逸。
展开
-
深入浅出RPC---6、零拷贝和时间轮
零拷贝什么是零拷贝系统内核处理 IO 操作分为两个阶段:等待数据和拷贝数据。等待数据,就是系统内核在等待网卡接收到数据后,把数据写到内核中。拷贝数据,就是系统内核在获取到数据后,将数据拷贝到用户进程的空间中。具体流程:所谓的零拷贝,就是取消用户空间与内核空间之间的数据拷贝操作,应用进程每一次的读写操作,都可以通 过一种方式,让应用进程向用户空间写入或者读取数据,就如同直接向内核空间写入或者读取数据一样,再 通过 DMA 将内核中的数据拷贝到网卡,或将网卡中的数据 copy 到内核。RPC原创 2022-02-23 15:41:50 · 9879 阅读 · 0 评论 -
深入浅出RPC---5、网络IO模型
网络IO模型有哪些网络IO模型主要包含以下几种:同步阻塞 IO(BIO)同步非阻塞 IO(NIO)IO 多路复用信号驱动IO异步非阻塞 IO(AIO)常用的是同步阻塞 IO 和 IO 多路复用模型。什么是阻塞IO模型IO多路复用IO多路复用的实现主要有select,poll和epoll模式。文件描述符:在Linux系统中一切皆可以看成是文件,文件又可分为:普通文件、目录文件、链接文件和设备文件。 三者的区别:selectpoll epoll操作方式遍原创 2022-02-23 15:40:46 · 10542 阅读 · 0 评论 -
深入浅出RPC---4、服务注册发现和健康监测
服务注册发现服务注册发现的作用感知服务端的变化,获取最新服务节点的连接信息。服务注册发现的处理流程**服务注册:**服务提供方将对外暴露的接口发布到注册中心内,注册中心为了检测服务的有效状态,一般会建 立双向心跳机制。**服务订阅:**服务调用方去注册中心查找并订阅服务提供方的 IP,并缓存到本地用于后续调用。如何实现服务的注册发现基于 ZooKeeper 的服务发现方式:在 ZooKeeper 中创建一个服务根路径,可以根据接口名命名(例如:/micro/service/com.t原创 2022-02-23 15:39:22 · 11998 阅读 · 0 评论 -
深入浅出RPC---3、动态代理
动态代理动态代理流程内部接口如何调用实现RPC的调用内部核心技术采用的就是动态代理。JDK动态代理的如何实现?实例代码:package com.rpc.sample.proxy;import sun.misc.ClassLoaderUtil;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;public class J原创 2022-02-23 15:38:11 · 9909 阅读 · 0 评论 -
深入浅出RPC---2、序列化技术
RPC深入解析上文说到RPC架构,那RPC底层涉及哪些技术呢,下面我们来详细解析下。序列化技术序列化流程序列化作用在网络传输中,数据必须采用二进制形式, 所以在RPC调用过程中, 需要采用序列化技术,对入参对象和返 回值对象进行序列化与反序列化。序列化处理要素解析效率:序列化协议应该首要考虑的因素,像xml/json解析起来比较耗时,需要解析doom树,二进 制自定义协议解析起来效率要快很多。压缩率:同样一个对象,xml/json传输起来有大量的标签冗余信息,信息有效性低,二进制自定义协原创 2022-02-23 15:37:16 · 9984 阅读 · 0 评论 -
深入浅出RPC---1、RPC架构
RPC是什么RPC概述在单体架构体系时期,我们写一个函数都是在本地注入调用就行了。但是在互联网公司,服务都是部署在不同服务器上的分布式系统,如何调用呢?RPC 全称 Remote Procedure Call——远程过程调用。RPC技术简单说就是为了解决远程调用服务的一种技术,在提供强大的远程调用能力时不损失本地调用的语义简洁性。RPC框架Dubbo:国内最早开源的 RPC 框架,由阿里巴巴公司开发并于 2011 年末对外开源,仅支持 Java 语言。Motan:微博内部使用的 RPC 框架,原创 2022-02-23 15:35:51 · 9764 阅读 · 0 评论