Dubbo01【概述】

本文涉及的产品
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的RPC 实现服务的输出和输入功能,可以和 Spring 框架无缝集成。Dubbo 框架,是基于容器运行的.。容器是 Spring。


文章目录

   一、 概念

       1、Dubbo 介绍

       2、单体架构

       3、SOA 架构:

       4、RPC 远程过程调用

   二、Dubbo 框架结构图

       1.Dubbo 角色介绍

           1.1registry

               1.1.1发布

               1.1.2订阅

           1.2consumer

           1.3provider

           1.4container

           1.5monitor

       2.Dubbo 架构图的执行流程

           2.1Dubbo 执行流程

       3.Dubbo 支持的协议

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

           3.2RMI(Remote Method Invocation)协议

           3.3Hessian 协议

       4.Dubbo 支持的注册中心

           4.1Zookeeper(官方推荐)

           4.2Multicast

           4.3Redis

           4.4Simple

   三、 zookeeper

一、 概念

1、Dubbo 介绍

 Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的RPC 实现服务的输出和输入功能,可以和 Spring 框架无缝集成。Dubbo 框架,是基于容器运行的.。容器是 Spring。

 官方网站 : http://dubbo.apache.org/

 阿里巴巴已经将 dubbo 框架捐献给了 Apache 软件基金会

2、单体架构

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

3、SOA 架构:

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

4、RPC 远程过程调用

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

二、Dubbo 框架结构图

1.Dubbo 角色介绍

image.png

1.1registry

 注册中心. 是用于发布和订阅服务的一个平台.用于替代 SOA 结构体系框架中的 ESB 服务总线的。

1.1.1发布

 开发服务端代码完毕后, 将服务信息发布出去. 实现一个服务的公开.

1.1.2订阅

 客户端程序,从注册中心下载服务内容 这个过程是订阅.

 订阅服务的时候, 会将发布的服务所有信息,一次性下载到客户端.客户端也可以自定义, 修改部分服务配置信息. 如: 超时的时长, 调用的重试次数等.

1.2consumer

 服务的消费者, 就是服务的客户端.

 消费者必须使用 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 架构图的执行流程

image.png

2.1Dubbo 执行流程

   start: 启动 Spring 容器时,自动启动 Dubbo 的 Provider

   register: Dubbo 的 Provider 在启动后自动会去注册中心注册内容.注册的内容包括:

     1.1 Provider 的 IP

     1.2 Provider 的端口.

     1.3 Provider 对外提供的接口列表.哪些方法.哪些接口类

     1.4 Dubbo 的版本.

     1.5 访问 Provider 的协议.

   subscribe: 订阅.当 Consumer 启动时,自动去 Registry 获取到所已注册的服务的信息.

   notify: 通知.当 Provider 的信息发生变化时, 自动由 Registry 向 Consumer 推送通知.

   invoke: 调用. Consumer 调用 Provider 中方法

     4.1 同步请求.消耗一定性能.但是必须是同步请求,因为需要接收调用方法后的结果.

   count:次数. 每隔 2 分钟,provoider 和 consumer 自动向 Monitor 发送访问次数.Monitor进行统计.

3.Dubbo 支持的协议

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

特点 说明

优点 采用 NIO 复用单一长连接,并使用线程池并发处理请求,

减少握手和加大并发效率,性能较好(推荐使用)

缺点 大文件上传时,可能出现问题(不使用 Dubbo 文件上传)

3.2RMI(Remote Method Invocation)协议

特点 说明

优点 JDK 自带的能力。可与原生 RMI 互操作,基于 TCP 协议

缺点 偶尔连接失败

3.3Hessian 协议

特点 说明

优点 可与原生 Hessian 互操作,基于 HTTP 协议

缺点 需 hessian.jar 支持,http 短连接的开销大

4.Dubbo 支持的注册中心

4.1Zookeeper(官方推荐)

   优点:

   支持分布式.很多周边产品.

   缺点:

   受限于 Zookeeper 软件的稳定性.Zookeeper 专门分布式辅助软件,稳定较优

4.2Multicast

   优点:

   去中心化,不需要单独安装软件.

   缺点:

   Provider 和 Consumer 和 Registry 不能跨机房(路由)

4.3Redis

   优点:

   支持集群,性能高

   缺点:

   要求服务器时间同步.否则可能出现集群失败问题.

4.4Simple

   优点:

   标准 RPC 服务.没有兼容问题

   缺点:

   不支持集群.

三、 zookeeper

 在dubbo中我们选择zookeeper来搭建服务治理中心,具体的安装操作参考下文链接地址

https://dpb-bobokaoya-sm.blog.csdn.net/column/info/34287


相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
4月前
|
缓存 负载均衡 Dubbo
Dubbo 第二节_ Dubbo的基本应用与高级应用
官⽹地址:http://dubbo.apache.org/zh/docs/v2.7/user/examples/loadbalance/ 如果在消费端和服务端都配置了负载均衡策略,以消费端为准。 这其中⽐较难理解的就是最少活跃调⽤数是如何进⾏统计的? 讲道理,最少活跃数应该是在服务提供者端进⾏统计的,服务提供者统计有多少个请求正在执⾏中。 但在Dubbo中,就是不讲道理,它是在消费端进⾏统计的,为什么能在消费端进⾏统计? 逻辑是这样的:官⽹地址:http://dubbo.apache.org/zh/docs
|
4月前
|
负载均衡 Dubbo 算法
深入理解Dubbo-2.Dubbo功能之高级特性分析
深入理解Dubbo-2.Dubbo功能之高级特性分析
89 0
|
4月前
|
监控 负载均衡 Dubbo
Dubbo快速入门
Dubbo快速入门
|
缓存 负载均衡 监控
Dubbo简介
Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架(告别Web Service模式中的WSdl,以服务者与消费者的方式在dubbo上注册)
197 0
Dubbo简介
|
消息中间件 监控 Dubbo
Dubbo 概述|学习笔记
快速学习 Dubbo 概述
Dubbo 概述|学习笔记
|
监控 负载均衡 Dubbo
Dubbo 简介|学习笔记
快速学习 Dubbo 简介
160 0
Dubbo 简介|学习笔记
|
缓存 Dubbo Java
初识Dubbo及简单案例使用
初识Dubbo及简单案例使用
初识Dubbo及简单案例使用
|
负载均衡 监控 Dubbo
|
Dubbo 应用服务中间件 微服务
Dubbo 简介
Dubbo 简介
141 0