博观而约取,厚积而薄发。这篇文章主要讲述Dubbo 3 深度剖析 - 透过源码认识你相关的知识,希望能为你提供帮助。
??立即下载??
??立即下载??
Apache Dubbo 3 从性能和云原生的角度提出了诸多特性,大大提升了开发效率。作为目前市面上稀缺的 “深度剖析” 精品课程,资深架构师将带领大家,探究 Dubbo 3 的底层实现原理,掌握源码分析技巧,助力大家学精学透 Dubbo 的同时,提升微服务架构能力,快速成为独当一面的顶级攻城狮!
Dubbo框架的一些特性
分层架构--Dubbo采用分层架构。Dubbo框架整体上氛围了业务层(business)、RPC层和远程调用层(Remoting),其中业务层提供API,让使用者方便地发布与引用服务;RPC层则是对服务注册与发现、服务代理、路由、负载均衡等功能的封装,该层有可以被划分为很多层;远程调用层则是对网络传输与请求数据序列/反序列化等的抽象。
扩展性--Dubbo是一个扩展性极强的框架,其RPC层中的所有组件都是基于SPI扩展接口实现的,每个组件都可以被替换。
集群容错--Dubbo框架提供了分布式系统中常见的集群容错策略,并且提供了扩展接口,让使用方方便地定制自己的集群容错策略。
负载均衡、路由--Dubbo框架提供了分布式系统中常见的负载均衡策略,并且提供了扩展接口,让使用者方便地指定自己的负载均衡策略;另外,陆游规则提供了服务治理的一种策略,在Dubbo中我们可以通过管理控制台来配置路由规则,让消费者只可以访问那些服务提供者。
注册中心--在Dubbo框架中,提供了扩展接口来方便地让我们使用Zookeeper,redis等作为服务注册中心。
代理远程调用--Dubbo框架和其他RPC框架一样,采用代理来实现,让使用者无感知地发起远程过程调用。服务提供端使用代理与javaAssist技术来减少反射调用开销。
【Dubbo 3 深度剖析 - 透过源码认识你】
网络通信--Dubbo的分层架构中,Transport网络传输层把Mina和Netty抽象为统一接口,并且在默认情况下使用Netty作为底层网络通信。
异步调用--Dubbo基于Netty的异步非阻塞能力和JDK8中的CompletableFuture轻松地实现RPC请求的异步调用,提供了资源的利用率。
运行原理启动容器,相当于在启动Dubbo的Provider
启动后会去注册中心进行注册.注册所有可以提供的服务列表
在Consumer启动后会去Registry中获取服务列表和Provider的地址.进行订阅.
当Provider有修改后,注册中心会把消息推送给Consummer
--使用了观察者设计模式(又叫发布/订阅设计模式)
根据获取到的Provider地址,真实调用Provider中功能.
--在Consumer方使用了代理设计模式.创建一个Provider方类的一个代理对象.通过代理对象获取Provider中真实功能,起到保护Provider真实功能的作用.
Consumer和Provider每隔1分钟向Monitor发送统计信息,统计信息包含,访问次数,频率等。
本地服务mock
首先需要消费端先实现服务接口的mock实现类,需要注意的是,mock实现类必须要符合“接口名.类名Mock”格式,否则启动时会报错。在执行mock服务实现类mock()方法前,会先发起远程调用,当远程调用失败(比如服务不存在)时,才会降级执行mock功能。
推荐阅读
- Linux中是谁占用了我的端口
- 数据结构综合列表
- 单个资源预留的数据结构
- 字典和拼写检查器的数据结构()
- 数据科学生命周期详细指南
- Python中机器学习的数据预处理
- 数据挖掘中数据源的类型详细介绍
- 数据挖掘基本概念详细介绍
- R中的DataFrame操作详细指南