为什么要用Dubbo-远程通信背景

技术架构的发展从单体到分布式,是一种顺势而为的架构演进,也是一种被逼无奈的技术变革。架构的复杂度能够体现公司的业务的复杂度,也能从侧面体现公司的产品的发展势头是向上的。

和传统的单体架构相比,分布式多了一个远程服务之间的通信,不管是soa还是微服务,他们本质上都是对于业务服务的提炼和复用。那么远程服务之间的调用才是实现分布式的关键因素。

而在远程通信这个领域,其实有很多的技术,比如Java的RMI、WebService、Hessian、dubbo、Thrift等RPC框架,现在我们接触得比较多的应该就是RPC框架dubbo以及应用协议Http。其实每一个技术都是在某一个阶段产生它的价值,随着架构的变化以及需求的变化,技术的解决方案也在变。所以我们才需要不断的学习

我在前面的几次课,讲到了RPC的底层原理,服务与服务之间的调用无非就是跨进程通信而已,我们可以使用socket来实现通信,我们也可以使用nio来实现高性能通信。我们不用这些开源的RPC框架,也可以完成通信的过程。但是为什么要用现成的框架呢?

原因是,如果我们自己去开发一个网络通信,需要考虑到

1. 底层网络通信协议的处理

2. 序列化和反序列化的处理工作

但是这些工作本身应该是通用的,应该是一个中间件服务。为整个公司提供远程通信的服务。而不应该由业务开发人员来自己去实现,所以才有了这样的rpc框架,使得我们调用远程方法时就像调用本地方法那么简单,不需要关心底层的通信逻辑。

 

 

 

相关文章

在网络请求时,总会有各种异常情况出现,我们需要提前处理这...
作者:宇曾背景软件技术的发展历史,从单体的应用,逐渐演进...
hello,大家好呀,我是小楼。最近一个技术群有同学at我,问我...
 一个软件开发人员,工作到了一定的年限(一般是3、4年左右...
当一个服务调用另一个远程服务出现错误时的外观Dubbo提供了多...
最近在看阿里开源RPC框架Dubbo的源码,顺带梳理了一下其中用...