00:00
好,前面呢,我们配置好了服务的提供者,并把它呢注册在了我们这个注册中心,我们管理台呢,可以看见,接下来呢,我们就来配置消费者,我们让order service来调用我们这个user service服务,那消费者的配置呢,其实跟这个基本是一样的,首先第一步我们将double的这个框架。以及操作组的这个。然后呢,我来复制过来。好,我们先把这个依赖引入进来,然后呢,接下来第二步,我们这个消费者的配置呢,我们参照官方文档。这一块呢,我们只需要配置我们这个消费者的名字,包括呢,说一下注册中心的地址,然后呢,我们要消费哪个服务,将服务呢在这一写,主要呢就这三个好,我们来把这个消费者的配置文件来写一下,叫consumer。这个消费者呢,我们还是一样把double的名称空间引进来double的名称空间,然后呢,我们来写上double application name,先把我们应用的名字写上,名字呢,我们就叫order service,好,这个我们以前配过,第二个再来指定注册中心的地址。
01:18
Registerg,好,我们用address,我们写keeper。冒号,然后呢,我们本机。冒号2181端口,这是我们注册中心的地址,以前呢也配过,然后呢,额外来写上一个就是呢,我们这个声明我们需要调用的远程服务的接口啊,这个接口啊这块呢,其实是啊,其实呢,文档说这一块它是为我们远程服务呢,是来生成代理的,比如说呢,我们把这个接口放在这儿,它会为这个接口呢生成远程服务代理。那我们用哪个呢?就用double,有一个叫reference,我们引用引用谁呢?接口写成我们之前user service啊,它暴露了一个,哎,就它是暴露了user service,那我们接下来呢,在这我们就是引用user service,哎,我们这个接口是一样的,然后呢,为这个我们也起一个ID,一个名字,我们就叫user service。
02:21
这样呢,我们就配好了,配好了以后呢,由于我们这个user service在容器中了,所以说呢,我们可以在order service里边想要用,那我们就只需要用一个owa就能把这个注入进来了,当然我们把这个auto service呢,我们也加在容器中。Order service呢加容器中,我们接下来来注意这个service啊,Service呢,目前还是我们这个spring的这个service注解,哎,这呢之前有一个service,诶你发现这是double的,我们暂时先不用,我们用spring service注解,好现在把这个自动注入过来,这个东西呢是啊通声明我们调的是一个远程的这个接口,它会从zoo keepper中来获取远程的这个接口的调用地址。
03:07
好,那为了让我们这个注解在这儿能生效,我们必须呢写上包扫描,把这个contest名称空间加进来。加进来,我们呢,让他扫描我们容器中的所有组件,这都是正常spring的使用步骤。Component来扫描我们这个包下的啊。那现在呢,我们就来做一个测试。写上一个慢方法。My application。我们呢,启动来加载我们这个配置文件,来启动我们的IOC容器,我们先写慢方法,我们来用一个class pass插面类路径下的这个。配置,把这个配置文件拿过来。好,我们把这个IOC容器呢,我们来拿到,拿到这个容器以后呢,接下来我们从容器中就来获取到我们这个order service。
04:07
从容器中我来get being,哎,我呢用接口order service,我来获取order service这个组件对象,好,我们拿到order service,我们呢直接调order service呢,初始化订单的方法,我们就来传一个用户的ID,这样的话呢,我们这个order service在里边会调user service user service呢会远程调用这个东西,好,我们把这个调用的这个记录我们也来out来打印一下。我们这个用户ID。打印一下传进来的用户ID,以及我们调过来的这些address list,我们就来for each来遍历。便利,把我们远程获取的所有用户的地址,我们来都来打印一下,来打印上每一个地址的咱们这个地址信息就行了,好。
05:01
我们看一下这次远程调用能否成功。同样我也可以system.in.read我让它阻塞一下,这样呢,我们还能在我们这个监控台里边看到我们提供者上线了,否则的话呢,我们这一调啊,我们这个程序结束,提供者呢又中断了,好,我们就在这儿呢调,调完调完呢,我们来写一个调用结束。完成。来测试一下。右键来运行起来。哎,稍等,诶我们发现呢,它打印了两个,哎,我们这两个信息呢,我们现在order service里边用的是user service只是接口,但是呢,我们利用double配置。我们说呢,我们这个接口呢,是一个远程引用,就是double reference double呢会从注册中心里边找到我们这个接口真正的在哪一块的实现,哎,我们就会找到user service在这一块呢,它去来真正的调这两个方法,调完以后呢,将返回的结果,哎也能拿到,我们调了这两个方法,我这个调用呢也就结束了,而且这个程序呢,我没结,然后呢,我们在控制台还能看到来刷新,诶有两个应用,一个是提供者,一个是消费者,我们可以在这看到,哎,提供者呢,就是我们这个user service。
06:25
来点一个应用,好,这个user service,这是一个提供者,这个order service呢是一个消费者,那我们这个调用呢就成功了。
我来说两句