2024年大数据最新第01篇 手写JavaRPC框架之思路分析_feign grpc

三、思路分析

3.1 什么是RPC框架

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

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

  • dubbo
  • grpc
  • feign

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

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

3.2 通信框架的区别

  • dubbo
  • grpc
  • feign

共同点:

  • 都是基于tcp/ip协议来实现通信
  • 都屏蔽底层通信细节,使开发者只用关心自己的业务即可

不同点:

  • grpc和feign都是基于tcp协议更上层的http协议来实现的
  • dubbo是基于tcp协议上自己重新实现了一套自己的规则,而这个规则就是dubbo协议。

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

3.3 RPC底层实现

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

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

既然知道了他的大概实现,那么其实思路就有了。我们第一步就是使用Java语言来实现底层
的通信能力建设,然后在这个基础上进行二次封装,最终通过动态代理的形式,将底层通信的细节给屏蔽起来。如此就能实现一个RPC协议了。

思路就是这个思路。

所以本系列文章的第一部分,就是先完成通信层的建设,使用Java实现一个通用的底层协议,实现通信能力。

说着很简单,但是实现通信可没有那么简单哦。接下来我们面临一系列网络通信中的难题。比如说Java的通信API表难用,网络通信中还有黏包拆包等问题。但是没关系,这些坑小编已经踩过了,跟着小编的思路一步一步做。相信事半必能功倍。

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 24
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当前主流的RPC(Remote Procedure Call)框架有很多,Feign和Dubbo是其中两个比较知名的。下面是关于它们的简要介绍: 1. **Feign**: - Feign是Netflix开发的一款轻量级的API客户端,主要用于简化服务间的接口调用。它基于Java注解,提供了一种声明式的接口调用方式,开发者只需定义接口,Feign会自动生成实现类和底层HTTP请求。 - Feign支持各种HTTP库,如OkHttp、Apache HttpClient等,并且可以轻松地集成到Spring Cloud生态系统中,方便微服务之间的通信。 2. **Dubbo**: - Dubbo是一个开源的企业级高性能远程服务调用框架,主要适用于大规模分布式服务架构,支持高并发、高性能和容错性。Dubbo基于Java,提供了一套全面的服务治理解决方案,包括注册中心、服务发现、负载均衡、熔断、限流等。 - 它通常用于企业级的微服务架构中,尤其在大型分布式系统中的服务间通信方面非常常见。 除了这两个,还有其他一些主流RPC框架,例如: - **gRPC**:Google开源的高性能RPC框架,基于Protocol Buffers协议,提供了高性能和安全性。 - **Retrofit**:Android和Java平台的流行库,结合OkHttp实现RESTful API调用。 - **Hystrix**(已被Netflix弃用):原本是Amazon的故障隔离工具,但现在常常与Feign一起作为服务降级和熔断方案使用。 如果你对这些RPC框架感兴趣,可以关注它们各自的特性、适用场景以及与其他技术栈的集成情况。有关更多细节,你可以询问: 1. Feign和Retrofit相比,各有何优缺点? 2. Dubbo和gRPC在性能上的差异体现在哪些方面? 3. 在微服务架构中,如何选择合适的RPC框架

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值