Dubbo概念和基本框架结构

一、 概念

1 Dubbo 介绍

Dubbo 是阿里巴巴公司开源的一个高性能优秀的 服务 框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring 框架无缝集成。 Dubbo 框架,是基于容器 运行的 . 。容器是 Spring
官方网站 : http://dubbo.apache.org/
阿里巴巴已经将 dubbo 框架捐献给了 Apache 软件基金会

2 单体架构

单体架构也称之为单体系统或者是单体应用。就是一种把系统中所有的功能、模块耦合在一个应用中的架构方式。其优点为:项目易于管理、部署简单。缺点:测试成本高、可伸 缩性差、可靠性差、迭代困难、跨语言程度差、团队协作难

3 SOA 架构: Service-Oriented Architecture

面向服务的架构( SOA )是一个组件模型,它将应用程序拆分成不同功能单元(称为服 务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的, 它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中 的服务可以以一种统一和通用的方式进行交互。

4 RPC 远程过程调用 : Remote Procedure Call Protocol

远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。 RPC 协议假定某些传输协议的存在,如 TCP UDP ,为通信程序之间 携带信息数据。在 OSI 网络通信模型中, RPC 跨越了传输层和应用层。 RPC 使得开发包括 网络分布式多程序在内的应用程序更加容易。

二、 Dubbo 框架结构

1 Dubbo 角色介绍

1.1 registry

注册中心 . 是用于发布和订阅服务的一个平台 . 用于替代 SOA 结构体系框架中的 ESB 务总线的。
1.1.1 发布
开发服务端代码完毕后 , 将服务信息发布出去 . 实现一个服务的公开 .
1.1.2 订阅
客户端程序 , 从注册中心下载服务内容 这个过程是订阅 .订阅服务的时候 , 会将发布的服务所有信息 , 一次性下载到客户端 . 客户端也可以自定义 , 修改部分服务配置信息 . : 超时的时长 , 调用的重试次数等 .

1.2 consumer

服务的消费者 , 就是服务的客户端 .
消费者必须使用 Dubbo 技术开发部分代码 . 基本上都是配置文件定义 .

1.3provider

服务的提供者 , 就是服务端 服务端必须使用 Dubbo 技术开发部分代码 . 以配置文件为主 .

1.4container容器.

Dubbo 技术的服务端 (Provider), 在启动执行的时候 , 必须依赖容器才能正常启动 . 默认依赖的就是 spring 容器 . Dubbo 技术不能脱离 spring 框架 .
2.5.3 版本的 dubbo , 默认依赖的是 spring2.5 版本技术 . 可以选用 spring4.5 以下版 .
2.5.7 版本的 dubbo , 默认依赖的是 spring4.3.10 版本技术 . 可以选择任意的 spring 版本 .

1.5monitor

监控中心 . Dubbo 提供的一个 jar 工程 .主要功能是监控服务端 (Provider) 和消费端 (Consumer) 的使用数据的 . : 服务端是什么 ,
有多少接口 , 多少方法 , 调用次数 , 压力信息等 . 客户端有多少 , 调用过哪些服务端 , 调用了多少次等 .

2 Dubbo 架构图的执行流程

2.1Dubbo 执行流程

0 start: 启动 Spring 容器时 , 自动启动 Dubbo Provider
1 register: Dubbo Provider 在启动后自动会去注册中心注册内容 . 注册的内容包括 :
1.1 Provider IP
1.2 Provider 的端口 .
1.3 Provider 对外提供的接口列表 . 哪些方法 . 哪些接口类
1.4 Dubbo 的版本 .
1.5 访问 Provider 的协议 .
2 subscribe: 订阅 . Consumer 启动时 , 自动去 Registry 获取到所已注册的服务的信息 .
3 notify: 通知 . Provider 的信息发生变化时 , 自动由 Registry Consumer 推送通知 .
4 invoke: 调用 . Consumer 调用 Provider 中方法
4.1 同步请求 . 消耗一定性能 . 但是必须是同步请求 , 因为需要接收调用方法后的结
.
5 count: 次数 . 每隔 2 分钟 ,provoider consumer 自动向 Monitor 发送访问次数 .Monitor进行统计 .

3 Dubbo 支持的协议

3.1 Dubbo 协议(官方推荐协议)

优点:
采用 NIO 复用单一长连接,并使用线程池并发处理请求,减少握手和加大并发效率、性能较好(推荐使用)
缺点:
大文件上传时 , 可能出现问题 ( 不使用 Dubbo 文件上传 )

3.2 RMI(Remote Method Invocation)协议

1) 优点 :
JDK 自带的能力。可与原生 RMI 互操作,基于 TCP 协议
2) 缺点 :
偶尔连接失败 .

3.3Hessian 协议

1) 优点 :
可与原生 Hessian 互操作,基于 HTTP 协议
2) 缺点 :
hessian.jar 支持, http 短连接的开销大

4 Dubbo 支持的注册中心

4.1 Zookeeper(官方推荐)

1) 优点 :
支持分布式 . 很多周边产品 .
2) 缺点 :
受限于 Zookeeper 软件的稳定性 .Zookeeper 专门分布式辅助软件 , 稳定较优

4.2 Multicast

1) 优点 : 去中心化 , 不需要单独安装软件 .
2) 缺点 :
2.2.1 Provider Consumer Registry 不能跨机房 ( 路由 )

4.3 Redis

1) 优点 :
支持集群 , 性能高
2) 缺点 :
要求服务器时间同步 . 否则可能出现集群失败问题 .

4.4 Simple

1) 优点 :
标准 RPC 服务 . 没有兼容问题
2) 缺点 :
不支持集群 .

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赵广陆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值