00:00
好,接下来呢,我们就来创建两个工程,一个服务提供者,一个服务的消费者,来测试一下double,我创建一个工程,那么为了整合好看,期间呢,我在这儿创建一个空工程,我点一个next来输入spring boot,零六,好,我们来先来测试double,点击finish。好,等它呢在这来创建完,那么由于这是空工程,刚创建完呢,它刚才会提示我们要加入一些它的这些子工程,我也可以在这儿点击fair new,我们来创建一个model,好来选中用spring初始化相等,点击next。我们先来创建一个服务提供者,报名呢,我们来改成com,点硅谷,诶比如呢,我们这是一个提供者provider,哎,它是一个卖票的,哎,Ticket这是给个卖票服务,好,我们把这一块呢来改为ticket,我点击next,我来选中web模块,哎,为了测试方便,我来加上web模块,还有1512版本,那剩下模块呢,我们就先不加了,我点一个next来点击finish。
01:17
在我们这个工程里边呢,我们就会有一个模块,好这个模块创建出来呢,们就给它里边来写上我们的service,好take里边我们来写一个,比如service,那有一个叫take。Service,这个service呢,我们把它做成接口。好,来规定上一个方法,Public string,比如就叫get ticket,我们能返回一个电影票,那好,我们来写上这个接口的实现,我们用一个就叫ticket service service的。
02:01
我们来实现ticket service。好,我们来写上它没有实现的方法,那我们这个票的方法呢,我们就来返回一张电影票。好,假设呢,就叫厉害了我的国好,那么这个服务呢,我们就先创建在这儿,我再来创建一个工程,来做一个消费者好next。就叫com硅谷好,我们呢就叫consumer,好,我们这是一个用户,我们用户呢来买这些电影票,好,我们就叫user next,我们呢还是一样选中web模块。方便测试,好点,下一步我们把这个consumer我也来创建出来。好,这个工程呢也就在这,我再来写一个服务,我们这有一个user service,好我来写一个,好我呢就直接来写这个类吧,我们就叫user service。
03:10
在这个user service中呢,我们想要用到我们这个票的这个服务来,我们想要用这个ticket service,那怎么用呢?来我们来说一下我们的步骤,首先我们需要呢,使用double将我们的服务提供者我们注册到我们的注册中心里边去,那我们这个user呢,我们要消费这个ticket服务,那我们user呢,同时从注册中心里边来订阅take服务。找到ticket服务的这些提供者地址列表以后,我们这个user,我们就直接可以来调用这个ticket服务了,来中间的调用也是double来做的,所以呢,我们来整理一下我们需要的步骤。
04:00
好,来写在这个提供者里边。我们第一步呢,我们就是服务提供者。提供者。注册到注册中心,好,那怎么注册呢?我们需要整合double,我们来到po文件里边,Double的有它相关的,我们可以去官方文档来搜索一下,来搜索double。然后呢,官网呢,是我们这个阿尔帕奇,他已经移交给我们阿尔帕奇组织好来点进来,然后呢,来我you giitar have,我在get上看它的项目源码。我来往下翻,下边呢,有double的这个start来点进来。来我们呢,往下翻这一块呢,有我们spring double start的依赖,我们来复制进来,好,我放进我们的po文件里边,这是我们第一步,我们引入了three BOO double的这个start,第二步由于呢,我们double要操作keeper,所以说呢,我们还得引入的。
05:22
到咱们这个客户端工具,这个客户端工具呢,我们直接去marposy里边搜过来就行了,好poy。这个客户端工具呢,我们叫z k client,好你就来搜它,把它引入进来就行了,好我们用这个z k client啊零一复制来把这个客户端工具呢来引入,这样呢我们的依赖就引入过来了,那接下来第二步呢,我们来配置application proper里边我们double的一些相关属性,比如double里边有一个application name,我们当前应用的名字,好我们来起一个名,关键呢double还要把应用呢发布到注册中心,我们接下来呢,写一个double registergry address,那注册中心的地址来写入keeper zoo keep,那我们来虚拟机的地址来看一下。
06:22
我们是1182444169118.24.44.169,哎,我们是2181端口,好这发布过去了,包括呢,我们还得写一个,我们是要将哪个包下的什么来发布出去,我们可以写一个double sc base packages来扫描哪些包,我们就把service这个包下的哎,我们这些服务来发布出去,那么这个基本配置写好,我们怎么把服务发布出去呢?我们需要来到task service里边,好来加上一个注解叫at service,注意这个service呢是我们double的这个service,它的作用呢,就是将。
07:07
服务我们这个发布出去,当然我们也把它呢加在的容器中,Component,好,这样呢,我们就将服务发布出去了,只要我们这个application应用一启动,我们double呢,就会按照这个best扫描规则,只要我们标了service的服务来,我们按照配置的注册中心的地址,我们来发布出去,好,我们就来启动这个应用。那么总结起来呢,就三步,第一步我们先来引入double和through keepper,我们直接叫Z相关依赖。相关依赖第二步呢,我们来配置的扫描包和注册中心地址。
08:05
第三步。我们使用。At service来发布服务,我们启动以后呢,我们还能看到控制台,哎控制台这一块呢,Register我们这个double的服务呢,就开始在这注册成功,好那么我们要测试呢,我们当然来消费者,这我们来测试一下来到消费者。好,这个消费者呢,假设我们这个user service,我们要用咱们这个ticket service的功能,那怎么办呢?好,我们第一步还是一样,我们来按照我们的步骤引入doubleper相关依赖。好,我们来注释一下,一引入依赖第二个配置。配置打宝的配置打宝啊,咱们的注册中心地址啊,第第三步,哎,以前呢是发布服务,那么我们第三步呢,就是引用服务,好我呢就把这个依赖,我先从原来的po文件里边,把w double这个start以及z k client来复制在消费者里边。
09:17
好,我们来复制进来,这是第一步,第二步呢,我们来配置resources,好,我们配置一个double的application name,比如应用名啊,我们就叫consumer user,包括呢,再来配double的注册中心地址,这个地址呢,我们跟它用的是同一个注册中心,所以呢,它能给里边注册服务,我们从里边消费服务这块呢,我们就再也不用配了。那接下来我们给user service里边我们要用咱们这个ticket service,怎么办呢?我们把同样的ticket service,我们要在这儿放一份一模一样的,而且一定要全类名相同,所以呢,我是come at,硅谷下我也来放一个K的包。
10:02
我来复制过来复制过来,好,这个的包呢,我就不要这个实现类了。我呢直接将它的这个接口拿来就行了,这个接口拿来呢,我们来到我们的这个service里边,哎,我把这个application干掉啊,这个不要take service里边呢,我们只要一个接口,我们来到user service里边,好,它呢是我们中的一个组件,诶我们不标double service标错,那标成spring service啊,这是我们spring的一个组件,然后呢,它来用ticket service ticket service,那怎么用呢?我们需要一个注解,叫reference来远程引用,远程引用它是怎么引用呢?它是按照这个全类名进行匹配的,看谁给注册中心里边注册了这个全类名的服务,而以前呢,我们在这儿发布的时候,它就是按照这个接口权利名来发布的,那我们在这儿呢,就能获取来,获取来呢,来写一个方法,帕布里克word,比如呢,来写一个hello,这个hello里边呢。
11:09
我们就调用一个ticket service.get ticket,诶我们只是调接口的方法,那么这个方法呢,就会远程调用我们提供者的相关功能,比如我们就来写买到票了,买到票呢,我们把这个take已来打印来到测试类里边,来测试一下能不能使用将user service来注入进来,User service好。And auto where,然后呢,我们来调用user service的hello方法,这个hello方法呢,会来远程调用ticket service的,我们这个get方法,好,我们来测试一下,行不行我来启动。好,我们来看运行,这个运行呢,大家一定注意,我们在运行过程中,我们的这个PROVIDER1定要一直在运行我的这个provider,哎,这个服务器呢,没停,那在这儿呢,诶我们发现运行成功,因为成功我们来看控制台买到票了,厉害了我的国,那这个内容呢,是我们provider为我们提供的,所以呢,这就是我们利用double,我们来分布式来做一个消费者,来做一个提供者。
12:27
Double呢?能让我们应用以非常简约的方式来实现远程调用能力。
我来说两句