RPC 简介RPC,全称为 Remote Procedure Call,即远程过程调用,它是一个计算机通信协议。它允许像调用本地服务一样调用远程服务。它可以有不同的实现方式,而不需要了解底层网络技术的协议。 RPC 协议假定某些传输协议的存在,如 TCP 或 UDP,为通信程序之间携带信息数据。如 RMI(远程方法调用)、Hessian、Http invoker 等。怎样实现一个 RPC 框架RP
转载
2024-02-03 16:56:50
134阅读
文首,思考一个问题:为什么需要 RPC 服务?在传统的开发模式中,我们通常将系统的各个服务部署在单台机器,随着服务的扩展,这种方式已经完全无法满足系统大规模的扩展需要,分布式系统由此诞生,在分布式系统中,最重要就是各个服务之间的 RPC 调用。RPC 全称 Remote Procedure Call——远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的方式。简单一
转载
2024-03-11 21:43:20
127阅读
概述 本门主要以dubbo为切入点,简单讲讲dubbo的简单使用和大致原理。后面再通过给大家简单搭建一个mini版dubbo,通过具体代码来加深大家对dubbo等rpc框架的大致原理。 有兴趣的同学可以基于本项目进行衍生扩展开发,也可以去dubbo官网深入学习。开门篇一、dubbo的常规使用1、服务提供者通过@service进行服务暴露:@Service
转载
2024-08-26 20:06:05
83阅读
package com.thtf.zwdsj.fangjia.rpc;
import org.apache.ws.commons.util.NamespaceContextImpl;
import org.apache.xmlrpc.common.TypeFactoryImpl;
import org.apache.xmlrpc.common.XmlRpcController;
import o
转载
2023-08-23 17:11:52
99阅读
RPC(Remote Promote Call) 一种进程间通信方式。允许像调用本地服务一样调用远程服务。RPC框架的主要目标就是让远程服务调用更简单、透明。RPC框架负责屏蔽底层的传输方式(TCP或者UDP)、序列化方式(XML/JSON/二进制)和通信细节。开发人员在使用的时候只需要了解谁在什么位置提供了什么样的远程服务接口即可,并不需要关心底层通信细节和调用过程。
(一)功能使用已存在的连接与rpc-server端通信,发送请求连接复用并发请求(二)设计思路对每个要通信的server端维持一个连接池,存放已经建立的连接,需要与server通信时直接从连接池取连接,不用重新创建动态连接池连接池中连接的数量是动态变化的,如果上一时刻请求多,现在请求少,则连接池中可用连接多;相反,如果上一时刻请求少,现在请求多,则连接池中可用连接少使用epoll监听连接池中连接当
转载
2024-02-05 20:07:51
35阅读
开篇本文会通过 Java 实现一个简单的 rpc 框架,rpc 的概念在此不多赘述。相信看完整个实现过程,会对 rpc 的实现原理有更清晰的,更直观的认识。目标实现一个类似 Dubbo 官方 Demo 的效果 ,先来看几段代码:定义一个服务接口类public interface HelloService {
public void sayHello(String name);
}服务提供者的接
转载
2023-06-27 10:22:11
485阅读
目录RPC和RMI前期准备1.RpcDefinition2.RpcFactory3.RpcInvoker服务器端客户端测试优化及改进 RPC和RMIRPC(Remote Procedure Call Protocol) 即远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。 RMI:远程方法调用(Remote Method Invocation)是一种面
转载
2023-10-02 22:39:58
67阅读
1.RPC解释RPC:Remote Procedure Call(远程过程调用)客户端获取服务端的服务(不同的计算机)2.RPC所需要的技术反射技术:客户端给服务端发送代表接口名的字符串,服务端需要通过字符串解析出该字符串代表的接口的一切信息socket:客户端与服务端交互(传输信息)动态代理:服务端需要根据客户端的不同请求,返回不同的接口类型,客户端需要接受到不同的接口类型3.代码实现客户端代码
转载
2023-08-10 18:32:17
57阅读
基于JAVA的RPC简单实现。一、RPC是什么? RPC即Remote Procedure Call 是一种进程间通信方式。RPC是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议,是分布式系统常见的一种通信方法。RPC采用客户机/服务器模式。二、RPC框架结构图 二、RPC框架流程图四、代码实现 &
转载
2023-09-01 11:52:53
162阅读
如果我们需要在远程计算机上运行一个函数并等待结果,这种模式通常被称为远程过程调用或RPC。在本教程中,我们应
原创
2022-06-29 14:56:02
295阅读
一段时间没怎么写文章了,今天提笔写一篇自己对 API 设计的思考。首先,为什么写这个话题呢?其一,我阅读了《阿里研究员谷朴:API 设计最佳实践的思考》一文后受益良多,前两天并转载了这篇文章也引发了广大读者的兴趣,我觉得我应该把我自己的思考整理成文与大家一起分享与碰撞。其二,我觉得我针对这个话题,可以半个小时之内搞定,争取在 1 点前关灯睡觉,哈哈。 现在,我们来一起探讨 API 的设计之道
一、RPC的概念二、RPC的通信流程2.1、建立连接2.2、数据传输2.2.1、序列化2.2.2、协议2.3、动态代理三、服务治理3.1、服务发现3.2、心跳检测3.3、负载均衡3.4、路由策略3.5、业务分组一、RPC的概念RPC 的全称是 Remote Procedure Call,即远程过程调用。RPC 是帮助我们屏蔽网络编程细节,实现调用远程方法就跟调用本地(同一个项目中的方法)一样的体验
转载
2024-05-26 13:36:11
74阅读
花了一个星期,我终于把RPC框架整明白了!
RPC(Remote Procedure Call):远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的思想。 RPC 是一种技术思想而非一种规范或协议,常见 RPC 技术和框架有:应用级的服务框架:阿里的 Dubbo/Dubbox、Google gRPC、Spring Boot/Spring Cl
RPC解决的问题正如上一讲所说,RPC 主要是为了解决的两个问题:解决分布式系统中,服务之间的调用问题。远程调用时,要能够像本地调用一样方便,让调用者感知不到远程调用的逻辑。完整流程其中左边的Client,对应的就是前面的Service A,而右边的Server,对应的则是Service B。下面一步一步详细解释一下。Service A的应用层代码中,调用了Calculator的一个实现类的add
转载
2024-04-19 17:31:18
12阅读
所谓动态代理,指的是语言提供的一种语法,能够将对对象中不同方法的调用重定向到一个统一的处理函数中来。python重写__getattr__函数能够做到这一点,就连世界上最好的语言也提供称为魔术方法的__call。这种语法除了能更好的实现动态代理外,还是RPC框架实现原理的一部分。1. 动态代理是什么动态代理提供一种抽象,能够将对象中不同方法的调用重定向到一个统一的处理函数,做自定义的逻辑处理。但是
转载
2023-08-10 18:32:48
68阅读
Java简单实现RPC原理RPC(Remote Procedure Call)远程过程调用,简单的理解是一个节点(A)通过网络向另一个节点(B)请求服务实现的基本思路首先,我们需要一个Client端(A节点)和一个Server端(B节点)进行远程的通信 其次,我们需要在两个节点建立统一的接口(相当于约定好,我们需要生产哪些方法和消费哪些方法) 然后,我们需要利用流完成对象在网络中的序列化和反序列化
转载
2023-09-19 07:59:11
86阅读
my-rpc了解RPC的一些原理后,尝试自己造个轮子,加深了解。https://github.com/yuyufeng1994/my-rpc个人对rpc原理的见解rpc是一种远程过程调用协议。rpc主要功能:异构分布式项目之间的通信,使消费者只需要知道接口,远程调用方法就像调用本地方法一样。 要使得消费层只通过接口调用远程实现方法,那么其之间的传输数据肯定是:类、方法、参数、返回值,以及一些其它传
转载
2023-08-07 10:15:34
59阅读
作者:xavior我们即希望能够敏捷开发,不做重复的劳动,用别人的势能赋能自己;又要成为一名能够赋能别人的人,拥有自身的势能。在一个拥有成千上万大大小小的服务的公司里,每个团队在不同的机器上部署它们自己的服务,所以真实开发一个新服务的场景一定需要考虑两个问题:我的团队开发一个新服务,可能需要调用别人的服务。我的团队开发一个新服务,别的团队可能会调用。RPC调用的变与不变由于服务部署在不同机器,想要
转载
2024-07-24 16:34:03
59阅读
要完成一次服务调用,首先要解决的问题是服务消费者如何得到服务提供者的地址,其中注册中心扮演了关键角色,服务提供者把自己的地址登记到注册中心,服务消费者就可以查询注册中心得到服务提供者的地址,可以说注册中心犹如海上的一座灯塔,为服务消费者指引了前行的方向。有了服务提供者的地址后,服务消费者就可以向这个地址发起请求了,但这时候也产生了一个新的问题。你知道,在单体应用时,一次服务调用发生在同一台机器上
转载
2024-08-19 21:55:44
49阅读