Dubbo
Dubbo
Dubbo是什么?
Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成。
Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。
又是一个框架😵,每次学习框架都感觉学不明白,可能和学习的方式有关系。对于框架还是没有本质的认识,使用来说也没有感觉,脑子里没有框架的思想,所以感觉寸步难行。之前的框架还没有开始复习,现在从Dubbo的学习来找点感觉吧。
看完基本介绍,想要继续下去,我们先要解决什么是RPC?这个问题。
RPC是什么
RPC是远程过程调用(Remote Procedure Call)的缩写形式。远程调用对立的就是本地调用,我们之前学习Java时,实现一个个方法之间的调用,这个就是本地调用。再通俗点,就是从你本机上调用方法就是本地调用,而你在本地调用了其他地方机器上的某个方法就是远程调用。 RPC 框架就是要实现像那小助手一样的东西,目的就是让我们使用远程调用像本地调用一样简单方便,并且解决一些远程调用会发生的一些问题。
RPC底层的的核心技术是序列化和反序列化
- 生产者发布服务
- 消费者按照RPC协议调用生产者发布的服务
- 生产者执行方法得到返回的对象
- 生产者将对象序列化后返回给消费者
- 消费者接收数据后反序列化,得到Java对象
Dubbo工作原理
- 生产者启动Dubbo容器 ,生产服务对象
- 生产者把生成的服务发布到注册中心
- 消费者向注册中心订阅服务,把发布的服务下载到本地缓存,订阅服务后,本地缓存会自动更新生产者发布的服务
- 当消费者需要调用服务时,按照RPC协议要求,向生产者发起服务调用
- 生产者将对象交给Dubbo 容器进行序列化处理后给消费者
- 消费者接收返回的数据对其反序列化,得到Java对象
- 监视器对服务性能做监控统计
节点 | 角色说明 |
---|---|
Provider | 暴露服务的服务提供方 |
Consumer | 调用远程服务的服务消费方 |
Registry | 服务注册与发现的注册中心 |
Monitor | 统计服务的调用次数和调用时间的监控中心 |
Container | 服务运行容器 |
注册中心Registry和监控中心Monitor都不是必须的,可以缺少
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 不愿努力的帅洋!