本文代码地址:https://github.com/MSC419/msc-rpc-framework 文章目录0.实现的改进1.RPC消息通用格式RpcMessage2.Netty心跳机制2.1 心跳2.2 IdleStateHandler2.3 实现Netty心跳机制2.3.1 客户端2.3.3 服务端3.通过注解自动扫描注册服务3.1 注解类3.2 工具类 ReflectUtil3.3 扫描服
Cool-Rpc前言此博客所述项目代码已在github开源,欢迎大家起贡献! 点此进入:Cool-RPC最近次写博客还是17年底,谢谢大家持久以来的关注 本篇博文将会教大家如何从0到1,搭建一个简单、高效且拓展性强的rpc框架.什么是RPC相信大家都或多或少使用过RPC框架,比如阿里的Dubbo、谷歌的grpc、Facebook的Thrift等等那么究竟什么是rpc?rpc翻译成中文叫做远程过
RPC框架称为远程调用框架,其实现的核心原理就是消费者端使用动态代理来代理一个接口的方法(基于JDK的动态代理,当然如果使用CGLib可以直接使用无接口类的方法),通过加入网络传输编程,传输调用接口方法名称,方法参数来给提供者获取,再通过反射,来执行该接口的方法,再将反射执行的结果通过网络编程传回消
原创 2022-05-04 09:42:36
140阅读
1、面试题如何自己设计一个类似dubbo的rpc框架?2、面试官心里分析说实话,就这问题,其实就跟问你,如何自己设计一个MQ,样的道理,就考两:(1)你有没有对某个rpc框架原理有非常深入的理解; (2)你能不能从整体上来思考下,如何设计一个rpc框架,考考你的系统设计能力。3、面试题剖析我给大家一个建议,遇到这类问题,从你了解的类似框架的原理入手,自己说说参照dubbo的原理,你来设计
如何给老婆解释什么是RPC中,我们讨论了RPC实现思路。 那么这次,就让我们通过代码来实现一个简单的RPC吧! RPC实现原理 正如上讲所说,RPC主要是为了解决的两问题: 解决分布式系统中,服务之间的调用问题。 远程调用时,要能够像本地调用样方便,让调用者感知不到远程调用的逻辑。 还
转载 2019-03-12 09:31:00
48阅读
2评论
要能够像本地调用样方便,让调用者感知不到远程调用的逻辑。还是...
转载 2023-05-05 15:05:41
66阅读
在使用unittest框架时,我们常常需要下载一个HTMLRunnerCN.py用来生成HTML格式的报告,那么我们能不能自己实现一个呢? HTMLRunner是模仿unittest自带的TextTestRunner()实现的,我们先来看看TextTestRunner()的运行流程。 TextTes
转载 2020-11-11 23:19:00
87阅读
2评论
文章目录实现ArrayList的关键点二、怎么存储数据?三、API1、增(add)1.1、直接在数组末尾增加1.2、在固定位置增加1.3、扩容2、删(remove)3、改(set)4、查(get)四、总结五、广告实现ArrayList的关键点怎么存储数据?怎么增删改查数据?二、怎么存储数据?首先想到的就是数组,用int[]?还是String[]?既然我们也不知道类型,那干脆
原创 2021-09-26 10:48:20
677阅读
文章转自编程珠玑,作者:守望先生前言栈是种应用广泛的数据结构,例如函数的调用就需要使用栈,其实我们在介绍《栈的操作栈的常见操作有出栈(POP),从栈中弹出一个元素;入栈...
转载 2021-07-29 17:31:03
472阅读
在使用unittest框架时,我们常常需要下载一个 用来生成HTML格式的报告,那么我们能不能自己实现一个呢? HTMLRunner是模仿unittest自带的TextTestRunner()实现的,我们先来看看TextTestRunner()的运行流程。
,简单点的过程解说图(不太清晰,凑合看吧)Gitee仓库源码:​​https://gitee.com/fanjiangfeng/write-rpc-framwork​​common模块创建商品实体类和查询接口RPC框架创建一个注册中心(key:接口全名,value:实现类全名)创建RpcRequest,装载信息,也要序列化,也是网络传输的员创建RpcServer,用来创建serversock
原创 2022-03-29 15:47:25
442阅读
# 使用Java实现一个RPC ## 什么是RPC RPC(Remote Procedure Call)即远程过程调用,是种让程序调用远程服务的方式。通过RPC,我们可以像调用本地函数样调用远程服务器上的函数,使得分布式系统之间的交互变得更加简单和透明。 ## 实现一个简单的RPC框架 下面我们将使用Java语言来实现一个简单的RPC框架,包括服务端和客户端,并通过序列图来说明整个调用
原创 2024-04-29 05:19:11
47阅读
1 问题分析: 如何自己设计一个类似 Dubbo 的 RPC 框架?说实话,就这问题,其实就跟问你如何自己设计一个 MQ 样的道理,就考两:你有没有对某个 rpc 框架原理有非常深入的理解。你能不能从整体上来思考下,如何设计一个 rpc 框架,考考你的系统设计能力。2 面试题回答: 其实问到你这问题,你起码不能认怂,因为是知识的扫盲,那我不可能给你深入讲解什么 kafka 源码剖析,dubb
原创 2021-01-08 21:13:44
165阅读
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阅读
github地址:https://github.com/haobinliu项目github地址:https://github.co
角色1)服务消费者2)服务提供者基础设施1)远程代理(jdk/cglib)2)序列化与反序列化(协议格式与序列化方法)3)网络传输(TCP/UDP)服务消费者1)连接管理TCP长连接,维护一个类似数据库连接池样的连接池,每次调用都拿出条连接,发送数据,可以多个线程共用条TCP连接,客户端调用后阻塞在某地方,数据回来根据会话ID唤醒对应线程,可以Map+CounDownLatch实现2)负载均
原创 2022-07-25 10:53:29
127阅读
编写一个简单的C程序编译器安装完成之后,我们就可以用它来编写代码了。 这里用Dev C++作为示例,我的是5.11的版本(后续版本是其他人开发的分支版本)。1.双击打开软件,2.点击左上角工具栏“文件”→“新建”→“源代码”,这样就打开了一个窗口,可以在这里编辑代码。 现在来看一个简单的代码。#include <stdio.h> //这是一个头文件 int main(){
介绍当开发一个单体项目的时候,大家肯定都写过类似的代码。即服务提供方和服务调用方在一个服务中publi
原创 2022-08-04 20:22:15
426阅读
由于在C++中NULL定义为0,C++中不能将void *类型的指针隐式转换成其他指针类型,而又为了解决空指针的问题,所以C++中引入0来
原创 2022-06-10 06:50:12
100阅读
五、服务注册中心Eureka5.1 服务的注册中心注册中心可以说是微服务架构中的“通讯录”,它记录了服务和服务地址的映射关系,在分布式架构中,服务会注册到这里,当服务需要调用其他服务时,就到这里找到服务的地址进行调用。5.2 注册中心的主要作用服务注册中心(又称注册中心)是微服务架构非常重要的一个组件,在微服务架构里主要起到了协调者的一个作用。注册中心般包含如下几个功能:服务发现: 服务注册/反
  • 1
  • 2
  • 3
  • 4
  • 5