dubbo原理(粗糙版)

菜鸡在面试的时候经常被问到会dubbo吗?所以开始学习dubbo
我计划分为三章:
第一章:dubbo框架的架构(简略说)
第二章:dubbo框架的具体知识以及底层原理
第三章:dubbo框架的应用实战


这是第一章

1.什么是dubbo框架?
官网给的解释是dubbo框架是一个远程调用框架(rpc),什么是远程调用框架呢?
简单来说指的就是不在一个服务器上的模块之间进行调用。随着数据量的增大,系统不可能将所有代码部署到一个服务器中,一旦这个服务器宕机的话,整个系统就会崩溃,所以出现了集群部署,简而言之就是说多买几个服务器,每个服务器上部署的都是相同的代码,这样一来即使有一个服务器宕机的话,因为有其他服务器的存在,还是可以继续运行的,那么集群部署是如何决定访问哪一个服务器的呢?通过负载均衡来决定访问哪一台服务器,在这里说一个小的知识点,我会另外开一篇文章介绍集群部署下的session共享问题,但我们都知道,系统的版本迭代是很快的,一旦系统更新,所有服务器都要更新,这还是不完美的,所以出现了垂直拆分结构,也就是分布式框架


2.分布式框架好几个,为什么选择dubbo?
dubbo中间传输的是二进制数据,所以序列化传输效率高
简单流程:将对象序列化为二进制数据-socket网络传输–>反序列化为对象


3.dubbo原理简单解析:
1.如何建立两台服务器之间的关系?(consumer如何调用provider)
我们传统的实现方法:1.注入对象自动扫描
2.配置类的实现类在哪
显然都是不行的,那我们如何操作呢?
1.通过反射和动态代理避免产生新对象
2.远程查找服务暴露方:spring通过自动扫描注解将类实现全部new出来放到本地map集合中,key装注解的参数,value装对象,将本地map注册到服务注册中心(Zookeeper)
3.通过Socket(netty)获取实例对象
4,反序列化,注入对象

猜你喜欢

转载自blog.csdn.net/wang_ze_ma/article/details/83899980
今日推荐