首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏技术汇总专栏

    RPC 核心概念 01:什么是 RPC?为什么需要 RPC?

    RPC核心概念01:什么是RPC?为什么需要RPC? 二、RPC的定义RPC:一种让程序透明地调用另一个地址空间(通常是远程服务器)函数的协议与技术。 对外暴露的开放API:建议REST(生态、调试方便);内部微服务通信:建议RPC(性能、强契约)。6.2RPCvs消息队列(MQ)RPC:同步、点对点;MQ:异步、解耦、广播。 八、RPC不是银弹引入RPC的代价:网络不可靠:超时、抖动、断连必须处理;延迟变大:本地调用ns级,RPC至少ms级;可观测性复杂:跨进程调用要做链路追踪;版本兼容:服务升级要考虑客户端旧版本。 十、小结RPC让远程调用像本地调用一样简单;RPC框架解决:IDL、序列化、传输、治理、观测;内部微服务首选RPC,对外开放接口可用REST;享受便利的同时要尊重网络不可靠的事实。

    1.1K10编辑于 2026-05-21
  • 来自专栏Elixir

    Python RPC | 连载 01 - RPC

    一、RPC RPC(远程过程调用) 既 Remote Procedure Call Protocol 的缩写,RPC 可以实现客户端像调用本地函数一样调用远程服务器的方法(服务)。 RPC 可以基于 TCP/UDP,也可以基于 HTTP 进行网络传输,那么 RPC 与 HTTP 接口有什么区别呢? RPC 与 HTTP 接口面向的对象不同 RPC 的调用是面向方法的,而 HTTP 接口是面向资源的。 RPC 与 HTTP 接口的序列化协议不同 HTTP 接口通常使用的序列化协议是 JSON 或者 XML,而 RPC 接口使用的序列化协议则为 JSON-RPC 或者 XML-RPC。 RPC 的优势 HTTP 是无状态的,也就说建立连接获取到返回数据之后就会关闭连接,RPC 是可以保持长连接的。并且 RPC 基于 TCP 传输效率更高。

    2.2K20编辑于 2022-09-28
  • 来自专栏Java后端修炼

    【RPC】RPC实战与核心原理

    RPC 的服务发现中,如果选用 zk 则可以达到强一致性的目的,但在服务量大的情况下容易造成节点不受控的宕机,因而如果在考虑系统的强健壮性情况下,可以选择使用消息总线机制来完成服务发现功能,采用异步推拉的模式来保证最终一致性 RPC 中的负载均衡完全由框架实现,一般策略包括随机权重、hash、轮询等,因为由框架自己实现,所以也就不会有负载设备的点单故障问题,进而还允许对其中的负载策略进行拓展。 在 RPC 框架中,建议在动态代理阶段插入熔断器的机制,因为这是一个请求发起的第一步,在发起请求时可先经过熔断器的检验,正常才让请求进入后续流程。 一般情况下为了实现 RPC 的全异步调用,会使用上 Java 原生的 CompletableFuture,在提升吞吐量的同时可以有效避免代码侵入。 一个完整的链路成为 Trace,一个链路段称为 Span,对应地都有唯一的 ID,而在 RPC 中需要整合的两点是埋点和传递。

    2.2K20编辑于 2022-12-18
  • 来自专栏星尘的一个朋友

    什么是RPC? RPC是什么?

    RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络>通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。 术语可能有复杂,那我们要怎么去理解RPC呢? RPC能够跨多种开发工具及平台,比如说企业已有的系统开发完毕或者子系统已经部署交付了,它提供了RPC接口,新的子系统要集成,使用业界通用的RPC接口就可以集成了,你不可能要求原来的开发商再来修改一遍接口 RPC优缺点 RPC的优点: 1. 提升系统可扩展性 2. 提升系统可维护性和持续交付能力 3. 实现系统高可用 RPC的缺点: 1. 一个完善的RPC框架开发难度大,需要人员配置多 2. RPC框架调用成功率受限于网络状况 3. 调用远程方法对初学者来说难度大

    3.9K40发布于 2020-11-25
  • 来自专栏芋道源码1024

    【RPC 专栏】简单了解RPC实现原理

    原作者梁飞,在此记录下他非常简洁的rpc实现思路。 核心框架类 /* * Copyright 2011 Alibaba.com All right reserved. 真实的rpc框架会对上面的实现方式进行替换,采用更快更稳定,更高可用易扩展,更适宜分布式场景的中间件,技术来替换。 不过梁飞大大的博客使用原生的jdk api就展现给各位读者一个生动形象的rpc demo,实在是强。 rpc框架解决的不仅仅是技术层面的实现,还考虑到了rpc调用中的诸多问题,重试机制,超时配置…这些就需要去了解成熟的rpc框架是如果考虑这些问题的了。 推荐一个轻量级的rpc框架:motan。 weibo团队在github开源的一个rpc框架,有相应的文档,用起来感觉比dubbo要轻量级,易上手。 ----

    2.2K60发布于 2018-06-12
  • 来自专栏小闫笔记

    RPC(一)

    1.RPC介绍 1.1什么是RPC? 我们来看一下维基百科的释义,RPC(Remote Procedure Call的缩写)叫做远程过程调用,也叫做远程程序调用。它是一个计算机通信协议。 RPC就能帮助我们解决这些服务间的信息传递和调用。 1.4RPC广义的概念 我们可以将所有通过网络来进行通讯调用的实现统称为RPC。看完这个概念,你也许会想,HTTP难道也是一种RPC实现咯? 我们常说的RPC是从狭义的概念上理解的,而狭义的RPC也剔除掉了HTTP通讯方式。统一采用自定义的流程控制,性能高的RPC。也就是自己定义数据格式,自己实现数据的接收等。 1.6RPC的优缺点 相比与传统HTTP的实现而言,优点就是效率高;发起RPC调用的一方,在编写代码时可忽略RPC的具体实现,如同编写本地函数调用一样。缺点就是通用性不怎么好。 9.Client得到本次RPC调用的最终结果。 RPC的目标就是要将2~8这些步骤封装起来,让使用者对这些细节透明。

    2.7K61发布于 2019-07-18
  • 来自专栏明丰随笔

    RPC编程

    什么是RPC? RPC全称Remote Procedure Call,即远程方法调用。 RPC的意义是实现一种调用执行远程方法的协议,让你在本地调用远程的方法,而对你来说这个调用是透明的,就向调用本地方法一样。 通过RPC能解耦服务,当server需要对方法的实现进行修改时,client完全感知不到,不用做任何变更。 RPC的使用场景探讨 假设我们有两个数据中心,一个是US,一个是CN。 客户端代码修改成RPC的调用形式。 1. Check the error log in rpc service for more details.

    2.1K30发布于 2019-07-14
  • 来自专栏Helloted

    RPC简介

    0、完整的RPC框架 在一个典型 RPC 的使用场景中,包含了服务发现、负载、容错、网络传输、序列化等组件 一个 RPC 的核心功能主要有 5 个部分组成,分别是:客户端、客户端 Stub、网络传输模块 将结果返回给服务的调用方,整个基于 TCP 协议的 RPC 调用大致如此。 基于 HTTP 协议的 RPC 调用 该方法更像是访问网页一样,只是它的返回结果更加单一简单。 6、RPC VS REST 面对对象不同: RPC 更侧重于动作。 REST 的主体是资源。 传输效率: RPC 效率更高。RPC,使用自定义的 TCP 协议,可以让请求报文体积更小,或者使用 HTTP2 协议,也可以很好的减少报文的体积,提高传输效率。 RPC 可以实现跨语言调用,但整体灵活性不如 RESTful。 总结 RPC 主要用于公司内部的服务调用,性能消耗低,传输效率高,实现复杂。

    6.1K22编辑于 2022-06-08
  • 来自专栏小闫笔记

    RPC(五)

    RPC GitHub地址: https://github.com/EthanYan6/rpc_divide.git 为了方便大家查看,我将RPC相关的代码放在了GitHub上面,大家可以clone到本地进行查看 历史文章导航: RPC(一) RPC(二) RPC(三) RPC(四) 1.请求消息协议实现测试 在上一篇文章中,我们实现了调用请求消息的相关代码。到底效果如何呢?我们来测试一下。 read_all(length) message = buff.decode() return InvalidOpreation(message) 到此为止,RPC 下一篇文章将会将RPC的传输协议部分,尽情期待吧。 ?

    2.2K20发布于 2019-07-18
  • 来自专栏小闫笔记

    RPC(六)

    RPC GitHub地址: https://github.com/EthanYan6/rpc_divide.git 为了方便大家查看,我将RPC相关的代码放在了GitHub上面,大家可以clone到本地进行查看 历史文章导航: RPC(一) RPC(二) RPC(三) RPC(四) RPC(五) 咱们前面已经将RPC消息数据构造好了,接下来呢,就可以通过网络在调用双方进行传递了。 我们可以将构造好的RPC消息数据嵌入到HTTP报文中的body部分,而对HTTP的path路径等都无需关心。 为了提升服务器的性能呢,我们可以将其做成多线程版本的RPC服务器。 下一次文章将开始讲解分布式RPC的相关内容,尽情期待...... ?

    2.1K30发布于 2019-07-18
  • 来自专栏Java技术圈子

    RPC初探

    RPC 框架要解决的三个基本问题 所有流行过的 RPC 协议,都不外乎通过各种手段来解决三个基本问题: 如何表示数据? 如何传递数据? 如何表示方法? RPC 的思想始于本地方法调用,尽管它早就不再追求要跟本地方法调用的实现完全一样了(因为像本地方法一样调用的rpc有”八宗罪“),但 RPC 的发展仍然带有本地方法调用的深刻烙印。 好,理解了RPC 要解决的三个基本问题以后,我们接着来看一下,现代的 RPC 框架都为我们提供了哪些可选的解决方案,以及为什么今天会有这么多的 RPC 框架在并行发展。 化繁为简 朝着简化发展,代表为 JSON-RPC。要是说选出功能最强、速度最快的 RPC 可能会有争议,但要选出哪个功能弱的、速度慢的,JSON-RPC 肯定会是候选人之一。 也正是因为每一种 RPC 框架都有不完美的地方,才会有新的 RPC 轮子不断出现。

    3.1K30编辑于 2023-02-28
  • 来自专栏sunsky

    RPC详解

    RPC(Remote Procedure Call),即远程过程调用,是一个分布式系统间通信的必备技术,本文体系性地介绍了 RPC 包含的核心概念和技术,希望读者读完文章,一提到 RPC,脑中不是零碎的知识 RPC 最核心要解决的问题就是在分布式系统间,如何执行另外一个地址空间上的函数、方法,就仿佛在本地调用一样,个人总结的 RPC 最核心的概念和技术包括如下,如图所示: (点击放大图像) ? 传输(Transport) TCP 协议是 RPC 的 基石,一般来说通信是建立在 TCP 协议之上的,而且 RPC 往往需要可靠的通信,因此不采用 UDP。 /neoremind/kraps-rpc)都采用了这个类库。 这里不做展开,看各种 RPC 的文档就知道他们的易用性如何了。 工业界的 RPC 框架一览 国内 Motan。

    2.6K20发布于 2020-08-20
  • 来自专栏小闫笔记

    RPC(四)

    RPC 历史文章导航: RPC(一) RPC(二) RPC(三) 1.请求参数转换为消息数据实现 上篇文章我们对消息协议进行了设计,并将其原理解释清楚。今天呢,我们用代码将设计作以实现。 因为我们的RPC建立在网络通讯基础之上,毕竟是远程调用,对吧?所以我们就可以从网络数据中读取数据。

    1.8K10发布于 2019-07-18
  • 来自专栏小闫笔记

    RPC(三)

    RPC 前面文章导航: RPC(一) RPC(二) 没有看过之前文章的小伙伴,直接点击传送门(上面的标题即链接,跳转对应内容即可)。 最近因为各种原因,又间断了几天,也许以后还会间断,哈哈哈,但是RPC相关内容不会断掉。大家也可以休息一段时间,在某个周末集中学习,我一有时间就会继续更新。 所有的RPC相关文章会为大家汇总到『.py笔记』下的『分类合集2』中,大家可以在专栏中找到。那么我们切入正题,开始今天的学习吧。

    1.9K10发布于 2019-07-18
  • 来自专栏JavaEdge

    RPC服务治理框架实战(一) - RPC技术

    1.1 RPC VS RMI RMI(remote method invocation)远程方法调用是oop领域中RPC的一种具体实现。 1.2 webservice、restfull接 口调用是RPC吗? 都是RPC,仅消息的组织方式及消息协议不同。 1.3 远程过程调用较本地调用有何不同? 速度相对慢 可靠性减弱 2 RPC的流程环节 ? RPC调用过程中采用的消息协议称为RPC协议。 常见的RPC协议 ? 4 RPC框架(Java领域) 封装好参数编组、消息解组、底层网络通信的RPC程序开发框架,带来的便捷是可以直接在其基础上只需专注于过程代码编写。

    2.3K20发布于 2021-02-22
  • 来自专栏java思维导图

    rpc思维导图,让rpc不再难懂

    在OSI网络通信模型中,RPC跨越了传输层和应用层。 RPC使得开发包括网络分布式多程序在内的应用程序更加容易。 为什么要用RPC 可以做到分布式,现代化的微服务 部署灵活 解耦服务 扩展性强 RPC的目的是让你在本地调用远程的方法,而对你来说这个调用是透明的,你并不知道这个调用的方法是部署哪里。 通过RPC能解耦服务,这才是使用RPC的真正目的。 工作原理 RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。 rpc框架为我们解决的问题 ? 常用rpc框架 Dubbo DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000

    2.2K90发布于 2018-03-15
  • 来自专栏小脑斧科技博客

    RPC 原理以及开源 RPC 协议 thrift 源码解析

    本文我们就来详细介绍一下 http 协议在实际使用中存在的问题,从而说明 rpc 存在的必要性,主页君本文先来详细说明 rpc 的一般性设计思想与构建原理,接着以跨语言的开源 RPC 协议 thrift 来说明 RPC 构建的实例。 什么是 RPC 针对 HTTP 协议进行服务间通信的上述种种不足,RPC 协议诞生了,他是“Implementing Remote Procedure Calls”的缩写。 RPC 的优势与不足 5.1. 优势 通过上述介绍,RPC 最大的优势在于其使用的友好性,他将远程调用转换为本地调用,在提供强大的远程调用能力的同时不损失本地调用的语义简洁性。 其他跨语言版本的 RPC,例如 thrift、grpc 等 RPC 协议都提供了类似伪代码声明接口的 IDL 接口描述协议,但这无疑额外引入了一定的学习成本,另一方面,对于不同的语言,都要实现单独的 user

    1.6K21编辑于 2022-06-27
  • 来自专栏用户3288143的专栏

    理解RPC

    无法从A服务器调用B服务器中的方法,通过网络进行调用,调用过程称为RPC RPC解决什么问题 访问量大的冲击,通过集群起不到什么缓解的作用,这个时候通过RPC,将我们的项目拆分成几个独立的业务模块 同服务器,同JVM不同业务,方法调方法(单体应用) 不同服务器,不同JVM,不同业务,方法不能调方法,RPC解决(分布式) RPC技术本质 RPC是两系统之间相互调用的思想统称。 可以通过不同语言实现 以下技术都是通过RPC之间互相调用 Dubbo是基于Tcp协议 SpringCloud基于Http协议

    88320发布于 2020-07-07
  • 来自专栏小闫笔记

    RPC(二)

    RPC 1.消息协议实现思路与divide调用参数确定 为了填上篇文章的坑,我们来实现一个二进制消息协议的小案例。这个案例要实现的是一个RPC的服务接口定义,这个RPC调用可以完成除法的操作。

    70830发布于 2019-07-18
  • 来自专栏学习笔记持续记录中...

    RPC(3)

    什么是RPC RPC(Remote Procedure Call)是指远程过程调用,是一种进程间通信方式,他是一种技术的思想,而不是规范。 RPC基本原理图 举个例子 A服务器上有段代码 hello(){ String msg = b.hi(new User("Tom")); System.out.println(msg); } 另一台 并将传递的参数对象进行序列化,将内容发送给B服务器的 Server Sub,将序列化的内容反序列化,并调用对应的方法,拿到调用方法产生的返回值,将返回结果序列化传递A服务器,A收到后反序列化并展示调用结果 决定RPC

    78710发布于 2020-03-17
领券