JavaRPC框架之思路分析和设计

本文深入探讨了RPC框架的概念,分析了dubbo、grpc和feign的区别,指出RPC框架的核心是利用Java实现底层通信能力,并通过动态代理屏蔽细节。文章将围绕设计自己的通信协议、通信层架构和工程结构展开,旨在帮助读者理解RPC框架的实现原理。
摘要由CSDN通过智能技术生成

一、思路分析

1.1 什么是RPC框架

我们在要写RPC框架,我们先思考下RPC是什么? 白话点就是一个远程通信的工具而已。 他可以让开发者像调用本地方法一样,方便的调用远程的方法。

目前市面上的RPC框架主要有下面这些

  • dubbo

  • grpc

  • feign

可能对于银行和传统国企可能偏爱国产的dubbo框架,可能会涉及到国家安全吧,而对于互联网公司更多的会使用SpringCloud的全家桶。那么不管他们使用的其中的哪一款,其实这些框架都是能做到,让开发者像调用本地方法一样实现远程方法的调用的。

可以实现远程调用的呢? 答案当然就是利用socket通信了。而socket底层通信 都是基于tcp/ip协议实现的。所以以上这三款的

1.2 通信框架的区别

  • dubbo

  • grpc

  • feign

共同点:

  • 都是基于tcp/ip协议来实现通信

  • 都屏蔽底层通信细节,使开发者只用关心自己的业务即可

不同点:

  • grpc和feign都是基于tcp协议更上层的http协议来实现的

  • dubbo是基于tcp协议上自己重新实现了一套自己的规则,而这个规则就是dubbo协议。

dubbo协议因为是直接基于tcp协议定制的,所以可能性能会更加的好。能实现更多的底层的特性,比如说长连接。而其他两款是基于http协议来进行封装的,正因为它的这个特性,所以只是http客户端都可以进行调用,更适合跨平台,跨语言。因为不管是什么语言,都支持http协议。但是他的性能可能就相对没有dubbo好,综上所述他们各有胜负。现在主要比的就是看谁的生态比较好,谁的周边扩展更加丰富。

1.3 RPC底层实现

前面我们说了,RPC框架是一个,可以让程序猿像调用本地方法一样实现远程方法调用的一个工具。其实这句话就说出了主要的答案。

远程调用 = 计算机通信 屏蔽细节 = 动态代理

既然知道了他的大概实现&#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值