Dubbox&&zookeeper基础

目录

Dubbox的原理

Dubbo相关的jar包

zookeeper的使用

zookeeper的安装

zookeeper的启动和结束

调用服务例子

写一个接口

服务提供方配置

服务调用方的配置

远程注入属性

扫描外部的bean

管理中心

分布式dubbo配置

端口配置


前言

Dubbox是一个分布式服务框架,相等于Dubbox的升级版

主要功能是进行远程的服务调用,一般只有分布式项目才用的到

 

Dubbox的原理

Dubbox&&zookeeper基础

 

zookeeper

上图的Dubbo register 就是注册中心, 注册中心一般使用zookeeper

服务提供放在注册中心注册服务,然后消费者去找注册中心找对应的服务即可

Dubbox&&zookeeper基础

 

Dubbo相关的jar包

注意,Dubbo的最终版本是2.5.3,而后面的版本都是Dubbox,不过maven的中央仓库不一定有这个jar包

所以可以先把这个jar包导入到我们的仓库里

Dubbox&&zookeeper基础

 

 

zookeeper的使用

 

zookeeper的安装

zookeeper从官方下载下来为一个gz压缩包

Dubbox&&zookeeper基础

 

zookeeper的启动和结束

Dubbox&&zookeeper基础

 

调用服务例子

在服务端有一个服务,就是返回一个简单的字符串,然后由服务的调用者调用服务

创建一个服务提供方的maven-web项目,并入导入spring相关的依赖

只需要配置一个核心监听器(用于监听servletContext来获取web工厂)和配置初始化spring配置文件的路径

Dubbox&&zookeeper基础

 

写一个接口

并且写实现类,返回一个name

注意@Service是Dubbo的,并非spring的

Dubbox&&zookeeper基础

 

服务提供方配置

在spring配置文件里注册dubbo服务

application name 是服务的名称

application registry  是zookeeper注册中心的地址

annotation(注解) 指定扫描哪些接口,这些接口用于提供服务,也就是扫描@Service注解

Dubbox&&zookeeper基础

 

创建服务调用方的maven项目

注意因为2个项目都要启动,所以需要配置下maven-tomcat插件的端口

Dubbox&&zookeeper基础

 

服务调用方的配置

web.xml的配置

Dubbox&&zookeeper基础

 

spring mvc.xml的配置

只需要配置一个转换器,用于解决@Response 的乱码问题

Dubbox&&zookeeper基础

 

远程注入属性

之前都是Autowired或者@Resource,现在是@Reference,因为需要远程注入

在这之前,我们还需要把服务端的接口复制过来

Reference(timeout=5000)  可以指定连接时间,如果超出了就会异常

Dubbox&&zookeeper基础

 

不过一般情况,会把timeout放到服务端,因为服务端更容易估计连接的时间

Dubbox&&zookeeper基础

 

 

最后还需要注册服务,因为还需要去注册中心去找服务

Dubbox&&zookeeper基础

 

<dubbo:reference>扫描外部的bean

Dubbox&&zookeeper基础

 

 

管理中心

服务一旦多了起来,那么就需要一个管理中心来管理这些服务

管理中心就是一个web应用,是Dubbox自带的

源码里有对应的管理段源码,可以通过编译源码得到对应的程序,然后部署到tomcat下

Dubbox&&zookeeper基础

Dubbox&&zookeeper基础

Dubbox&&zookeeper基础

可以看到你有哪些服务

Dubbox&&zookeeper基础

 

分布式dubbo配置

端口配置

在分布式的情况下,必须要配置<dubbo:protocol> 这是代表本服务占用的端口

因为一台电脑上可能有好几个服务,如果不配置,那么都会占用一个默认的端口,所以需要我们主动配置

Dubbox&&zookeeper基础

 

Dubbox和zookeeper集群

https://blog.****.net/yzj17025693/article/details/90549325