如何自己设计一个类似 Dubbo 的 RPC 框架?

server/2024/11/25 9:37:47/

目录

一、面试官心理分析

二、面试题剖析


一、面试官心理分析

        说实话,就这问题,其实就跟问你如何自己设计一个 MQ 是一样的道理,就考察两个:
        · 你有没有对某个 rpc 框架原理有非常深入的理解。
        · 你能不能从整体上来思考一下,如何设计一个rpc框架,考考你的系统设计能力。

二、面试题剖析

   遇到这类问题,起码从你了解的类似框架的原理入手,自己说说参照 dubbo 的原理,你来设计一下。举个例子,dubbo 不是有那么多分层么?而且每个分层是干啥的,你大概是不是知道?那就按照这个思路大致说一下吧,起码你不能懵逼,要比那些上来就懵,啥也说不出来的人要好一些。
给大家说个最简单的回答思路:

        · 上来你的服务就得去注册中心注册吧,所以得有个注册中心,保留各个服务的信息可以用 zookeeper 来做。
        · 然后消费者需要去注册中心拿对应的服务信息吧,而且每个服务可能会存在于多台机器上。
        · 接着就该发起一次请求了,咋发起?当然是基于动态代理了,你面向接口获取到一个动态代理,这个动态代理就是接口在本地的一个代理,然后这个代理会找到服务对应的机器地址。
        · 然后找哪个机器发送请求?就得有个负载均衡算法了,比如最简单的可以随机轮询。
        · 接着找到一台机器,就可以跟它发送请求了,第一个问题咋发送?可以说用 netty 了,nio 方式;第二个问题发送啥格式数据?你可以用 hessian 序列化协议或者是别的。然后请求过去了。
        · 服务器那边一样的,需要针对你自己的服务生成一个动态代理,监听某个网络端口了,然后代理你本地的服务代码。接收到请求的时候,就调用对应的服务代码。

( ps:一个点赞一份爱,点个关注不迷路!)


http://www.ppmy.cn/server/38356.html

相关文章

【3dmax笔记】027:配置修改器集、工具栏自定义与加载

文章目录 一、配置修改器集二、自定义工具栏三、加载工具栏 一、配置修改器集 可以把自己常用的修改命令放到右边框中的部分,便于自己的操作,省去了每次都要花半天时间找命令的尴尬。新建一个二维或者三维物体,点击修改面板,点击…

Web APIs

一、Web APIs 和基础关联性 1、JS组成 JavaScript由 ECMAScript(JavaScript语法),DOM(页面文档对象模型),BOM(浏览器对象模型) 二、API 和 Web API 1、API 应用程序编程接口 API是给程序员提供的一种工具&#xff0c…

drain3学习笔记

介绍 由于众所周知的原因,Github访问不稳定。官网虽然介绍,但是案例连接无效,因此保存于此,方便参考学习。 配置 官网样例(GitHub) drain3.ini [SNAPSHOT] snapshot_interval_minutes 10 compress_st…

动态规划——路径问题:931.下降路径最小和

文章目录 题目描述算法原理1.状态表示(经验题目)2.状态转移方程3.初始化4.填表顺序5.返回值 代码实现CJava 题目描述 题目链接:931.下降路径最小和 关于这⼀类题,看过我之前的博客的朋友对于状态表示以及状态转移是⽐较容易分析…

ICode国际青少年编程竞赛- Python-1级训练场-变量的计算

ICode国际青少年编程竞赛- Python-1级训练场-变量的计算 1、 a 2 for i in range(4):Spaceship.step(a-1)Dev.step(a)Dev.step(-a)a a 12、 a 2 for i in range(4):Dev.step(2 a)Dev.step(-a)Dev.turnRight()a a 13、 y 4 for i in range(3):Dev.step(y)Dev.turnRigh…

java基于云计算的SaaS医院his信息系统源码 HIS云平台源码

目录 云HIS功能模块 1、预约挂号: 2、药库管理: 3、门诊医生站: 4、门诊费用: 5、药房管理: 6、治疗室(门诊护士工作站): 7、统计分析: 8、财务管理:…

2万字长文:海豚调度器(DolphinScheduler)面试题深入了解

目录 海豚调度器的主要功能和特点 海豚调度器与Oozie、Azkaban等调度器相比的优势

百倍潜力股Aleo即将上线,布局正当时!牛市来时,你得有币!

前言 在加密货币市场,2024年被众多市场专家预测为迎来新一轮牛市的关键年份。这一预测背后,潜藏着多种可能推动牛市的因素。其中,下一次比特币(BTC)的减半事件,以及2024年 BTC 现货ETF的推出,都…