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