Dubbo

一.基础知识
1.分布式系统是什么

分布式系统是若干独立计算机的集合

这些计算机对用户来说就是单个相关系统

比如:京东、淘宝

分布式系统用于处理大数据流量

dubbo用来维系和治理各个计算机中的关系

2.分布式发展演变

ORM(单一应用架构):

流量很小

所有功能放在一个应用里打包部署到服务器中

缺点:①扩展性低 ②协同开发困难

MVC(垂直应用架构):

将每一个功能放在独立的应用和独立的服务器上

每个功能都是完整独立的互不相干

优点:①适合分工合作 ②性能扩展容易

缺点:①界面+业务逻辑的实现分离 ②应用之间需要交互

RPC(分布式服务架构):

将不同的界面和其需要的业务逻辑拆分

进行功能之间的交互分工合作

缺点:服务器分布出现功能性差异

SOA(流动计算架构):

基于访问压力实时管理集群容量,提高集群利用率

在RPC的基础上加入调度中心

3.RPC

RPC(Remote Procedure Call)是指远程过程调用,是一种进程间通信方式,它是一种技术的思想,而不是规范。它允许程序调用另一个地址空间。

二.dubbo的概念

Apache Dubbo是一款高性能的Java RPC框架

1.特性:

①面向接口代理的高性能RPC调用

当我们需要远程调用时 我们只需要调用功能的方法接口

②智能负载均衡

也是就是平均服务器负载

③服务自动注册与发现

支持多种注册中心服务 注册中心相当于 web和实现功能的中间件

④高度可扩展能力

遵循微内核+插件的设计原则 所有核心能力都可以被当做扩展点

⑤运行期流量调度

通过配置不同的路由规则,轻松实现灰度发布

灰度发布:当我们有新的用户服务时 我们可以逐步调度服务器

先尝试部分服务器运行 运行过后没问题再逐步部署到全部服务器中

⑥可视化服务治理和运维

提供一个可视化的web界面查询服务元数据、服务健康

2.设计架构

贯穿整个应用

①注册中心 ②服务提供者 ③服务消费者 ④框架容器 ⑤监控中心

运行流程:

框架启动后由④容器 启动后初始化(init)后 会将②服务提供者 提供给 ①注册中心 注册中心知道我们服务上线 由③服务消费者再向①注册中心订阅 每次订阅信息会定时发送给⑤监控中心

支持注册中心:

①Nacos ②Zookeeper ③Multicast ④Redis ⑤Simple

三.高可用
1.负载均衡机制

①Random LoadBanlance

基于权重的随机负载均衡机制

②RoundRobin LoadBanlance

基于权重的轮询负载均衡机制

③LeastActive LoadBanlance

最少活跃数-负载均衡机制

④ConsistenHash LoadBanlance

一致性hash-负载均衡机制

2.服务降级

当服务器压力剧增的情况下,根据实际业务情况及流量,

对一些服务和页面有策略的不处理或换种简单的方式处理,

从而释放服务器资源以保证核心交易正常运作或高效运作。

可以通过服务降级功能临时屏蔽某个出错的非关键服务,并定义降级后的返回策略

3.集群容错

在集群调用失败时,Dubbo提供了多种容错方案

①Failover Cluster

失败自动切换,当出现失败,重试其他服务器 可以设置重试次数

②Failfast Cluster

快速失败 :只发起一次调用 失败了就立即报错

③Failsafe Cluster

失败安全,出现异常时,直接忽略

④Failback Cluster

失败自动恢复,后台记录失败请求,定时重发

四.dubbo框架设计

框架设计

Dubbo的框架大致可以分为三层:

①业务层

②RPC层

③Remoting层

①业务层:

Service : 业务层,业务代码的实现,应用开发者工作在这一层

②RPC层:

Config:配置层,用来初始化配置信息,用来管理Dubbo的配置

Proxy:代理层,Dubbo中生产者和消费者都会生成Proxy,它用来调用远程接口,就像调用本地接口一样

Registry:注册层,负责框架的服务注册和发现

Cluster:集群容错层,负责远程调用的容错策略,负载均衡策略以及路由策略

Monuitor:监控层,负责监控调用次数和时间。

Protocol:远程调用层,封装调用的具体过程。

③Remoting层:

Exchange:信息交换层,建立Request-Response模型,分装请求响应模式

Transport:网络传输层,将网络传输封装成统一接口,可以在这之上扩展更多的网络传输方式

Serialize:序列化层,负责网络的序列化和反序列化

下图为这些架构的工作流程

订阅评论
提醒
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论
滚动至顶部