突破Java面试(40)-如何设计一个类似Dubbo的RPC框架-阿里云开发者社区

开发者社区> javaedge> 正文

突破Java面试(40)-如何设计一个类似Dubbo的RPC框架

简介: 突破Java面试(40)-如何设计一个类似Dubbo的RPC框架
+关注继续查看

0 Github

1 面试题

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

2 考点分析

就跟问你如何设计一个MQ一样的道理,就考两个:

  • 你有没有对某个RPC框架原理有非常深入的理解
  • 你能不能从整体上来思考一下,如何设计一个rpc框架,考考你的系统设计能力

3 解决方案

其实一般问到你这问题,你起码不能认怂,因为这既然是面试突击教程,那不可能给你深入讲解什么kafka源码剖析,dubbo源码剖析,何况就算讲了,你要真的消化理解和吸收,起码个把月以后了!


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


给大家说个最简单的回答思路

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


这就是一个最最基本的RPC框架的思路,先不说你有多牛逼的技术功底,哪怕这个最简单的思路你先给出来行不行?好,突击教程,那就到这儿结束了,这教程定位是帮你快速梳理一遍,扫清盲点,不是打通你任督二脉,给你九阳神功的!


参考

  • 《Java工程师面试突击第1季-中华石杉老师》

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
分布式服务框架Dubbo疯狂更新!阿里开源要搞大事情?
最近,开源社区发生了一件大事,那个全国开发使用最广的开源服务框架Dubbo低调重启维护,并且3个月连续发布了3个维护版本。这3个维护版本不仅解决了社区关心的一系列问题和需求,还让整个社区的活跃度得到了大幅提升。
24388 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10095 0
带你读《计算机组成与体系结构:性能设计(英文版·原书第10版)》之二:Performance Issues
本书以Intel x86体系结构和ARM两个处理器系列为例,将当代计算机系统性能设计问题与计算机组成的基本概念和原理紧密联系起来,介绍了当代计算机体系结构的主流技术和最新技术。本书作者曾13次获a得美国教材和学术专著作者协会颁发的年度最佳计算机科学教材奖。目前,他是一名独立顾问,为众多计算机和网络制造商、软件开发公司以及政府前沿研究机构提供服务。
644 0
IOS设计模式第二篇之单例设计模式
现在我们的组件已经有组织了。你需要从其他的地方得到数据,你也可以创建一个API类管理数据这个下个设计模式单例里面介绍。 这个单例设计模式确保这个类仅仅拥有一个实例,并且为这个实例提供一个全局的访问点。
820 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13893 0
分布式RPC框架:Dubbo架构解析!使用Dubbo实现负载均衡
本文首先介绍了分布式架构系统中远程RPC调用服务框架Dubbo的应用架构,分析了DUbbo应用架构中各个组件的作用。然后重点介绍了Dubbo中服务治理相关的负载均衡策略,分析了不同的负载均衡策略各自的特点。最后说明了在分布式项目中服务端级别,客户端级别,服务端方法级别和客户端方法级别的具体负载均衡配置。通过这篇文章,可以了解熟悉Dubbo架构的负载均衡策略和使用方式。
71 0
RPA干货丨详解RPA的设计与构建
德勤在一份有关RPA的研究报告中曾提到,一家收入在200亿美元且拥有5万名员工的财富1000强公司,如果其20%的工作能够用RPA实现流程自动化,每年将会为公司带来超过3000万美元的利润。实施RPA已成为一项新潮流。
2972 0
+关注
javaedge
关注公众号:JavaEdge,后台回复面试,领取更多大厂求职资源。曾在百度、携程、华为等大厂搬砖,专注Java生态各种中间件原理、框架源码、微服务、中台等架构设计及落地实战,只生产硬核干货!
2315
文章
1
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载