2 -【 Dubbo 】- 1

1 Dubbo 产生的背景

1.1 什么是 Dubbo

  • 一款分布式服务框架
  • 高性能和透明化的 RPC 远程服务调用方案
  • SOA 服务治理方案

每天为2千多个服务提供大于30亿次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点以及别的公司的业务中。

如何实现远程通信?

  • Webservice :效率不高基于 soap 协议。项目中不推荐使用。——两个企业间,跨企业,跨平台,不同语言间的通信,效率低,能传数据就行。
  • 使用 restful 形式的服务: http+json 。很多项目中应用。如果服务太多,服务之间调用关系混乱,需要治疗服务。——就是 get 请求
  • 使用 dubbo 。使用 rpc 协议进行远程调用,直接使用 socket 通信。传输效率高,并且可以统计出系统之间的调用关系、调用次数。——服务治理

1.2 Dubbo 注册中心

dubbo

  • 单一应用架构

    • 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。
    • 此时,用于简化增删改查工作量的 数据访问框架 (ORM) 是关键。
  • 垂直应用架构

    • 当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。
    • 此时,用于加速前端页面开发的 Web 框架(MVC) 是关键。
  • 分布式服务架构

    • 当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。
    • 此时,用于提高业务复用及整合的 分布式服务框架(RPC) 是关键。
  • 流动计算架构

    • 当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。
    • 此时,用于提高机器利用率的 资源调度和治理中心(SOA) 是关键。

Dubbo 就是资源调度和治理中心的管理工具。

1.3 Dubbo 的架构

Dubbo的架构

节点角色说明:

  • Provider:暴露服务的服务提供方。
  • Consumer:调用远程服务的服务消费方。
  • Registry:服务注册与发现的注册中心。
  • Monitor:统计服务的调用次调和调用时间的监控中心。
  • Container:服务运行容器。

调用关系说明:
0、服务容器负责启动,加载,运行服务提供者。
1、服务提供者在启动时,向注册中心注册自己提供的服务。
2、服务消费者在启动时,向注册中心订阅自己所需的服务。
3、注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
4、服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
5、服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。

通过将服务统一管理起来,可以有效地优化内部应用对服务发布/使用的流程和管理。服务注册中心可以通过特定协议来完成服务对外的统一。

Dubbo提供的注册中心有如下几种类型可供选择:

  • Multicast 注册中心
  • Zookeeper 注册中心
  • Redis 注册中心
  • Simple 注册中心

1.4 Dubbo 的优缺点

优点:

1、透明化的远程方法调用

  • 像调用本地方法一样调用远程方法;只需简单配置,没有任何 API 侵入。

2、软负载均衡及容错机制

  • 可在内网替代 nginx lvs 等硬件负载均衡器。

3、服务注册中心自动注册 & 配置管理

  • 不需要写死服务提供者地址,注册中心基于接口名自动查询提供者ip。
    使用类似 zookeeper 等分布式协调服务作为服务注册中心,可以将绝大部分项目配置移入 zookeeper 集群。

4、服务接口监控与治理

  • Dubbo-adminDubbo-monitor 提供了完善的服务接口管理与监控功能,针对不同应用的不同接口,可以进行 多版本,多协议,多注册中心管理。

缺点:

只支持 JAVA 语言

DubboX 支持其他语言,底层变为 http + json

2 Dubbo 快速入门

环境步骤:

  1. 安装 Zookeepr 启动
  2. 创建 Maven 项目搭建生产者和消费者
  3. 安装 DubboAdmin 平台,实现监控

2.1 创建项目

创建父工程:

在这里插入图片描述

创建 api 工程:

在这里插入图片描述

创建服务提供者

在这里插入图片描述

创建服务消费者

在这里插入图片描述

发布了675 篇原创文章 · 获赞 214 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/weixin_42112635/article/details/104730154