Dubbo入门(一)Dubbo简介

前言

      本章学习Dubbo的基本知识

方法

1.概念

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

Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。

目前,Dubbo经历了很多波折,进入到了Apache社区。

2.作用

2.1 专门访问数据库服务(项目).

我们之前的web项目中,各个模块如果都提供了dao层,其中有查询全部以及根据id查询指定数据的功能,那么每个模块基本上都要写一遍,这看起来十分的繁琐,使用dubbo之后,所有涉及到访问数据库的代码将封装到一个服务项目中。

2.2 开发时可以实现,数据访问控制和代码复用.

由于对数据库的访问单独采用可一个指定的服务项目,这有点类似于webservice的功能,即对外提供接口以供调用。这样有利于系统的安全性,以及可以实现代码的复用,不必写过多的dao层代码。

3.dubbo简介

官网:http://dubbo.apache.org/zh-cn/

4.dubbo架构及原理

  • Provider :提供者,服务发布方.
  • Consumer:消费者, 调用服务方
  • Container:Dubbo容器.依赖于Spring容器.
  • Registry: 注册中心.当Container启动时把所有可以提供的服务列表上Registry中进行注册.
  •         作用:告诉Consumer提供了什么服务和服务方在哪里.
  • Monitor:监听器

虚线都是异步访问,实线都是同步访问

蓝色虚线:在启动时完成的功能

绿色虚线(实线)都是程序运行过程中执行的功能

所有的角色都是可以在单独的服务器上.所以必须遵守特定的协议.

5.运行原理:

  1. 启动容器,相当于在启动Dubbo的Provider
  2. 启动后会去注册中心进行注册.注册所有可以提供的服务列表
  3. 在Consumer启动后会去Registry中获取服务列表和Provider的地址.进行订阅.
  4. 当Provider有修改后,注册中心会把消息推送给Consummer,使用了观察者设计模式(又叫发布/订阅设计模式)
  5. 根据获取到的Provider地址,真实调用Provider中功能.在Consumer方使用了代理设计模式.创建一个Provider方类的一个代理对象.通过代理对象获取Provider中真实功能,起到保护Provider真实功能的作用.
  6. Consumer和Provider每隔1分钟向Monitor发送统计信息,统计信息包含,访问次数,频率等.