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