前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Dubbo01【概述】

Dubbo01【概述】

作者头像
用户4919348
发布2019-04-02 10:18:42
3560
发布2019-04-02 10:18:42
举报
文章被收录于专栏:波波烤鸭波波烤鸭

一、 概念

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 角色介绍

在这里插入图片描述
在这里插入图片描述

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 架构图的执行流程

在这里插入图片描述
在这里插入图片描述

2.1Dubbo 执行流程

  1. start: 启动 Spring 容器时,自动启动 Dubbo 的 Provider
  2. register: Dubbo 的 Provider 在启动后自动会去注册中心注册内容.注册的内容包括:   1.1 Provider 的 IP   1.2 Provider 的端口.   1.3 Provider 对外提供的接口列表.哪些方法.哪些接口类   1.4 Dubbo 的版本.   1.5 访问 Provider 的协议.
  3. subscribe: 订阅.当 Consumer 启动时,自动去 Registry 获取到所已注册的服务的信息.
  4. notify: 通知.当 Provider 的信息发生变化时, 自动由 Registry 向 Consumer 推送通知.
  5. invoke: 调用. Consumer 调用 Provider 中方法   4.1 同步请求.消耗一定性能.但是必须是同步请求,因为需要接收调用方法后的结果.
  6. 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(官方推荐)

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

4.2Multicast

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

4.3Redis

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

4.4Simple

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

三、 zookeeper

  在dubbo中我们选择zookeeper来搭建服务治理中心,具体的安装操作参考下文链接地址 https://dpb-bobokaoya-sm.blog.csdn.net/column/info/34287

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年03月27日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、 概念
    • 1、Dubbo 介绍
      • 2、单体架构
        • 3、SOA 架构:
          • 4、RPC 远程过程调用
          • 二、Dubbo 框架结构图
            • 1.Dubbo 角色介绍
              • 1.1registry
              • 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
          相关产品与服务
          容器服务
          腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档