dubbo学习笔记1

学习dubbo就需要先了解一下rpc框架,因为dubbo就是一种rpc框架,首先rpc是远程过程调用协议(Remote Procedure Call Protocol),它对标的就是本地服务调用,调方法那一套,而rpc的目标就是让调用远程服务像调用本地服务一样方便、一样悄无声息让你感觉不到。

远程调用就是去调用部署在远程的另一台服务器上的具体类的一个方法,然后得到了结果再返还回来。这其中的联系只能是网络,通过网络传输你要具体调用方法的方法名称,定位在哪里,需要传过去什么参数,把这一系列数据打成一个数据包传输过去,那边接收到了再去调用具体的方法,得到了返回结果在通过网络给传输回来,整体流程就是这样。

当然这只是使用流程,而且它的宗旨就是方便你使用,这就意味着框架需要处理很多事情,才能让你使用的如此顺滑,关于上面的过程你要细想如何去实现就会发现许多问题,首先是远程服务器的地址,你要像调本地方法一样调远程服务那么除了方法名和参数剩下你都不需要关心,但是你不知道你要调用的地址 ,你也不需要知道,所以就需要有一个注册中心来记录这些服务的名称和对应的IP地址以及端口号都必须提供,你也得注册进去去拉去这份清单给框架去使用。 其次远程调用会出现什么问题,有可能两个远程服务是不同的语言写成的,就存在跨平台的问题,你的数据过去了别人看不懂,所以需要规定一个统一的数据格式,比如用序列化的方式、什么编码解码的方式,这样你的数据变成二进制码过去之后别人还能准确解析出来。 然后这其中的效率问题所在就是网络传输的问题,基于什么协议http,还是tcp协议,需要建立网络连接,所以需要一个高效的网络数据传输框架,一般采用netty框架。差不多根据这些问题点dubbo进行了它的架构设计。下面来介绍下dubbo。

  dubbo是阿里开源的一套rpc远程调用框架,基于角色来设计架构实现不同的功能,分为:1,consumer,消费者就是需要调用远程服务的消费方。2,provider,生产者 就是服务的提供方。3,registry,注册中心服务提供方需要注册的地方。4,container,服务运行的容器。5,monitor,监控中心。这些角色之间的关系大概如下:首先服务提供者provider向注册中心注册自己所能提供的服务,然后服务消费者consumer启动去注册中心订阅拉去自己所需要的服务,服务提供者和服务消费者都会在内存中记录调用的次数和时间,定时发送统计的数据到监控中心。

dubbo的架构从层次上可以分为三层架构,大的三层分别是business业务层:里面有service层。rpc远程调用层:里面有config、proxy、register、cluster、monitor、protocol层。remoting层:exchange、transport、serialize层。其中还分为api(service和config)和spi(剩下的八层)层。这些分层也是它实现的一些功能和所进行的配置,下面来逐一介绍一下:

service,业务层,就是进行业务开发的业务逻辑层。

config,配置层,主要是serviceconfig和referenceconfig,初始化一些配置信息。

proxy,代理层,就是服务的提供者和消费者都会生成一个代理类去做具体的远程调用和返回结果。

register,注册层,封装了服务的注册和发现,就是注册中心的一个实现。

cluster,集群配置层,在集群中选择具体去处理远程调用请求的服务个体,处理特殊的调用要求和负责远程调用失败的容错措施。

monitor,监控层,负责监控服务调用的次数和调用时间。

protocol,远程调用层,封装了rpc的调用,主要负责管理invoker,invoker就是抽象的执行体。

exchange,信息交换层,用来封装请求响应模型,同步转异步。

transport,网络传输层,抽象了网络传输的统一接口,这样可以自己配置使用什么数据传输框架。

serialize,序列化层,将数据序列化成二进制数据流,也提供反序列化功能。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值