Dubbo概述
Dubbo定义
Dubbo是一个分布式服务框架(SOA:面向服务的体系结构),其前身是阿里巴巴开源项目Dubbo ,被国内电商及互联网项目中使用,后期阿里巴巴停止了该项目的维护,并将项目捐给了Apache,停更之后又开始维护。当当网在 Dubbo 基础上进行优化,并继续维护,为了与原有的Dubbo区分,故将其命名为Dubbox。
Dubbo 致力于提供高性能和透明化的 RPC 远程服务调用方案,以及 SOA 服务治理方案。简单的说,Dubbo 就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有 Dubbo 这样的分布式服务框架的需求,并且本质上是个服务调用的东西,说白了就是个远程服务调用的分布式框架。
官网:http://dubbo.apache.org/zh-cn/。
Dubbo的作用
最简单直接的说法就是:Dubbo 本身是一个程序,在开发中作为Jar包供我们使用,Dubbo 为我们做的就是根据服务的url去调用服务(基于rpc协议的调用)。透明化的远程方法调用,就像调用本地方法一样调用远程方法。
Dubbo架构
服务提供者(Provider):暴露服务的服务提供方,服务提供者在启动时,向注册中心注册自己提供的服务。
服务消费者(Consumer):调用远程服务的服务消费方,服务消费者在启动时,向注册中心订阅自己所需的服务,服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
注册中心(Registry):注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
监控中心(Monitor):服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
调用关系说明
-
服务容器负责启动,加载,运行服务提供者。
-
服务提供者在启动时,向注册中心注册自己提供的服务。
-
服务消费者在启动时,向注册中心订阅自己所需的服务。
-
注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
-
服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
-
服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
搭建Dubbo环境
Windows下
1、配置Java环境变量。
2、安装Zookeeper。
3、安装Dubbo服务治理(dubbo-admin)。
下载地址:https://github.com/apache/dubbo-admin/tree/master。
修改dubbo-admin配置
在dubbo-admin目录下:src/main/resources下有一个application.xml文件,指定Zookeeper的地址。
进入dubbo-admin目录,使用Maven的命令打包项目:mvn package
。
在target目录下会有一个打包好的Jar包,在target目录下打开cmd窗口,使用java -jar dubbo-admin-0.0.1-SNAPSHOP.jar
命令运行Jar包。
访问dubbo-admin页面:(默认使用root/root 登陆)
Linux下
前提条件需要有Java的环境、Zookeeper的环境。
#将打包好的jar包上传
mkdir /usr/local/dubbo-admin
cd /usr/local/dubbo-admin
java -jar dubbo-admin-0.0.1-SNAPSHOP.jar
安装Dubbo的监控中心
找到之前下载好的 dubbo-admin 里面的 dubbo-monitor-simple 项目,这不是Dubbo环境所必须的,只是使用可视化的监控页面方便我们管理。
修改配置指定注册中心地址,进入 dubbo-monitor-simple\src\main\resources\conf
,修改 dubbo.properties文件。
使用mvn package
打包dubbo-monitor-simple,解压 tar.gz 文件,并运行start.bat。如果缺少servlet-api,自行导入servlet-api再访问监控中心。然后启动访问8080端口。
监控中心配置
所有服务配置连接监控中心,进行监控统计。
<!-- 监控中心协议,如果为protocol="registry",表示从注册中心发现监控中心地址,否则直连监控中心 -->
<dubbo:monitor protocol="registry"></dubbo:monitor>
监控中心默认每分钟分同步一次消费者和提供者的数据。如果没有消费者。也没有提供者那么就只能看到simple-monitor它自己这么一个提供者的项目。
Simple Monitor 挂掉不会影响到 Consumer 和 Provider 之间的调用,所以用于生产环境不会有风险。
Simple Monitor 采用磁盘存储统计信息,请注意安装机器的磁盘限制,如果要集群,建议用mount共享磁盘。
评论区