文章目录RPC简介RPC框架需求分析实现步骤创建API工程创建工程并导入依赖定义业务接口定义常量类创建Server工程导入依赖实现业务接口定义服务端消息处理器定义服务器类定义启动类创建client工程客户端处理类客户端动态代理类定义消费者类执行测试总结源码下载地址 RPC简介RPC,Remote Procedure Call,远程过程调用,是一种通过网络从远程计算机上请求服务,而不需要了解底层网
从零开始手写一个RPC-01从零开始手写一个RPC,让每个人都能看懂。第一次手写RPC,一定会有理解的偏差与代码上的不完善,但就是这样,与新手对同样问题的疑惑,才能更好理解这样写为什么会出错,那样为什么是对的。学习建议:一定要手写代码,边写边想。RPC的概念RPC是指远程过程调用,举个例子,两台服务器A,B.一个应用在A服务器上想要调用B服务器的一个应用获取信息,由于不在同一个内存空间,不能直接通
转载
2024-03-19 09:47:36
30阅读
目录什么是RPC手写RPC创建功能接口、通用类项目功能/目的接口RPC传参对象Util创建服务提供项目(生产者)功能/目的POM启动类接口实现方法启动服务注册BeanRPC调用时执行的方法创建服务调用项目(消费者)功能/目的POM负载均衡类请求代理类发起调用完整启动流程此RPC执行流程代码下载什么是RPCRPC是⼀种协议:是⼀种远程过程调⽤(remote procudure call)协议 rpc
转载
2023-12-04 14:52:08
51阅读
接着SpringCloud--Alibaba入门(Nacos+Sentinel),上次使用了SpringCloudAlibaba中的Nacos和Sentinel,其中Nacos作为微服务的核心,不仅仅拥有服务注册中心、服务发现,还有配置中心的功能,并且自带Ribbon;Sentinel为保障整体微服务架构的高可用,拥有流控、熔断等功能,剩下还有OpenFeign、GateWay、Seata。一、O
分布式解决什么问题? 举个例子:当网站有10万个访问,已经没法处理这么多访问请求,通常,我们可以提高服务器的配置,其次我们还可以添加服务器来分流处理,如果一台机器只能处理6万个请求,那么我们在加一台服务器,把请求分配到两台,那么就可以处理10万请求。 加服务器有两种方
服务提供者在启动时向注册中心注册自己的服务实例,消费者可以向注册中心查询服务的地址信息。注册中心(Registry):Nacos作为一个服务注册中心,用于管理服务实例的注册和发现。总体来说,Nacos的实现原理是通过注册中心管理服务实例的注册和发
原创
2023-06-17 21:08:57
130阅读
本章实现了引入注册中心对于客户端以及服务端服务交互的一个管理,commit的版本号为0286460,并在注册中心对于服务端服务暴露中引入了负载均衡策略。注册中心回顾我们第一章所提到的关于RPC框架的一个整体框图,为了在大量分布式的模块中进行各个模块的通信,我们需要引入一个注册中心实现对于各个模块之间的管理,来保证各个模块之间通信的可靠。 目前比较主流的注册中心有Nacos,Zookeeper以及E
# 手写 RPC:一个简单的远程过程调用实现
在分布式系统中,远程过程调用(RPC)是一种允许程序调用远程计算机上程序的方法,使得调用就像是本地调用一样易于理解和使用。本文将通过例子实现一个简单的RPC框架,并且展示RPC的调用过程。
## 什么是 RPC?
RPC(Remote Procedure Call)允许程序在不同计算机之间进行函数调用,从而隐藏了网络通信的复杂性。开发者只需专注于
原创
2024-09-25 08:40:40
65阅读
package com.cgs.nettytest;
import java.net.InetSocketAddress;
import com.cgs.nio.RpcRequest;
import io.netty.bootstrap.Bootstrap;
import io.netty.channel.ChannelFuture;
import io.netty.channel.Cha
实现自己的RPC框架如果不需要自定义协议的话那就要基于Socket+序列化。 ProcessorHandler:主要是用来处理客户端的请求。 package dgb.nospring.myrpc;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutpu
文章目录前言一、手写spring框架之核心接口实现二、手写spring框架之实例化Bean三、手写spring框架之获取所有set方法四、手写spring框架之给属性赋值4.1 非简单类型属性赋值4.2 简单类型属性赋值附: 前言Spring IoC容器的实现原理:工厂模式+解析XML+反射机制一、手写spring框架之核心接口实现参考之前已知写的测试类中的第一行代码:ApplicationCon
转载
2024-07-15 15:12:07
29阅读
RPC其全程为Remote Process Call,即为远程过程调用。RPC将传统的本地调用转换为调用远端的服务器的方法,给系统的处理能力和吞吐量带来了极大的提升。 随着项目的发展,业务越来越复杂,单个项目的话,会非常复杂,且不易维护,如果单个项目挂了就会导致整个系统都无法使用,但是把复杂的业务拆分为多个小业务就方便系统的维护与开发。这种情况下就会有系统之间的相互调用。当日调用量不大的时候我们
转载
2023-07-12 23:44:06
80阅读
一、前文回顾在上一篇文章中,我们探究了一个RPC框架最基本的一些技术,并且开始写了服务端的注册发现相关的代码,今天我们继续之前的进度往后。既然已经将服务暴露出去了,接下来我们要考虑的是如何通过网络的形式将其传输出去。二、网络模块开发客户端和服务端之间想要通信必然需要一个媒介,所以我们需要为我们的RPC框架搭建一个网络模块。那么提到网络编程那么就有以下几个方案:我们最先想到的是Java中的Socke
转载
2023-07-19 12:36:43
251阅读
Java基于Netty/Zookeeper实现的RPC框架基于Spring Boot Starter的小型RPC框架。编写这个RPC框架并不是为了重复造轮子,而是出于学习的目的,通过手写一款RPC框架来达到知识的学习和应用目的。简易的RPC框架(danran-rpc),底层使用Netty进行网络通信,使用Zookeeper为注册中心。该项目可以Maven打包直接加入其他项目运行。另外一个仓库:ht
转载
2024-03-20 15:34:28
48阅读
文章目录1:nacos简介1,动态配置服务2:服务发现及管理3,动态DNS服务2:nacos安装1:环境准备2:下载3:安装4:查看3:nacos简单实用-Helloworld1:导包2:配置nacos3:从nacos中获取数据4:测试访问代码地址:https://gitee.com/cangyu1024/nacos-demo.git1:nacos简介Nacos是一个更易于构建云原生应用的动态服务
1.Nacos客户端依赖项目版本2.2.2.RELEASE2. @EnableDiscoveryClient 控制服务注册功能开启nacos客服端的服务注册需要在主启动类上添加 @EnableDiscoveryClient 注解我们先看下 这个注解干了什么事情有一个属性 boolean autoRegister() default true; 且默认值是 true 也就是默认开启服务的自动注册导入
转载
2024-10-18 21:15:51
36阅读
手写简单的RPC 1.何为RPC RPC(Remote Procedure Call,远程过程调用)是一种通过网络从远程计算机程序上请求服务,而
原创
精选
2024-04-23 09:44:05
184阅读
通过简单的案例实现简易版的RPC
原创
2024-04-18 20:37:15
84阅读
点赞
原文地址:https://juejin.im/post/5cebcd7551882503050ed889RPC(Remote Procedure Call),即远程过程调...
转载
2021-07-12 16:14:57
193阅读
RPC(Remote Procedure Call),即远程过程调用,它是一种通过网络从远程计算机程序 上请求服务,而不需要了解底层网络实现的技术。常见的RPC 框架有: 源自阿里的Dubbo, g ,Google 出品的grpc 等等。
转载
2021-08-04 15:12:07
143阅读