00:00
好,前面呢,我们编写好了服务的提供者user service,以及服务的消费者order service,那为了使我们order service里边来调用我们这个服务提供者的方法,可以远程调用成功,那么接下来呢,用double来改造一下,改造的步骤呢?哎,我们主要分为这么几个步骤,第一步我们之前看double的架构图,我们服务的提供者应该在double框架启动的时候呢,把它注册到注册中心,所以呢,第一步我们就是将服务提供者。注册到。注册中心这是第一步,那么第二步呢,那就是让服务消费者去注册中心来订阅服务提供者的服务地址,让。服务消费者。去注册中心。订阅。服务。提供者的服务地址。也就是说让他去注册中心找一下我们服务提供者所在的机器是哪个,让他们呢能架起一个远程通信的连接,好,那我们先来做第一件事,将服务提供者注册到注册中心,那这个步骤呢,我们第一步是先需要导入咱们这个double。
01:18
依赖。那么包括这个步骤,大家也可以在double的官方文档里边,诶在这儿呢,有一个快速启动,我们这儿呢有一个入门,然后呢,他这一块呢,教我们来如何人家称为叫暴露服务。那么就来说如何来暴露?首先呢,我们来引入double的依赖,Double呢,我们现在来使用的是啊,新的2.6.2版本,我们没有用double的2.5版本,好,我们来po文件中呢,我们来引入double。引入大宝。那double的引入呢?可以去仓库里边来找一下我们要用的double版本many。
02:06
好,我们在这呢,来搜索我们这个大包。Double呢,我们来主要用咱们现在这个2.62先,我们用2.62 2.62呢,把它复制过来。现在呢,我们第一步引入了double,我们可以看到依赖里边,现在double呢就进来了,而且2.62的double呢,哎,Double它用的是spring框架的底层来进行一些组件的管理,所这也有spring的一些依赖也都进来了。那我们除了引入打宝外,还要做第二件事儿,就是由于我们这个注册中心注册中信,我们使用的是zoo keepper,哎,我们那节课呢,将zoo keepper环境搭建起来,所以呢,我们需要引入操作zoo keeper的客户端。为什么double没有资格给我们引呢?由于我们这个注册中心啊,Double有很多不一定非要用zoo keepper,如果你自己要用zoo keepper,你就得手动把操作zoo keep的客户端引过来,那么2.62版本的打宝,它的这个入keep的客户端,他用的是阿帕奇的这个Q,而2.5版本,也就是2.6版本以前他们用的都是z k client。
03:23
所以说呢,我们要导操作入K客户端来导这个Q,如果你用的是2.5几2.4几的这些double,那你就可以用这个z k client这两个呢,二选一导入,我们呢,2.6必须导这个Q,把这个Q呢,我们就导进来。那我们这样呢,第一步就做完了,主要呢,引入了double的依赖,以及引入了操作keep的这个客户端。那么接下来呢,第二步我们就是来配置咱们这个服务提供者配置。提供者。
04:00
那么这一段的配置呢,我们可以参照double官网的文档快速启动,我们刚才看到呢,这来教我们如何暴露服务,他呢写了一段插麦文档,这个插呢其实是spring的一个配置文件,那我们呢就先来把这个配置文件来创建出来。来创建一个,那也叫provider。好,我们呢,就给里边来写配置,配置之前呢,我们先把这个double的名称空间加进来,这样的话呢,我们写double的配置就有提示了。第一步,我们先来用咱们有一个标签叫double application来指定当前应用的名字,指定当前服务,也就是当前应用的名字。这个名字呢,我们一般啊,同样的服务,同样的服务啊,我们都是user service,那名字呢,相同。然后呢,不要和。别的服务。别的服务同名就行了,这样呢,我们最终要区分不同服务的,我们这个名字呢,我们一般就指定成工程,工程名放在这,这是第一步,第二步。
05:09
我们想想啊,我们这个服务提供者呢,他要把自己呢,注册到注册中心去,别人就知道他在哪儿了,所以说呢,我们要指定注册中心的位置,我们使用double,咱们这个RY,我们用这个标签,这个标签里边呢,有一个属性叫address,这个指定怎么指定呢?我们用的是zoo keepper作为注册中心,我们可以看文档,文档呢用的是这个multicast。那zoo keepper注册中心呢?可以来到注册中心的参考手册,你点进来,这有一个zoo keepper注册中心。这个写法呢,我们主要来看它下边的这个配置写法。往下翻,诶,我们看到呢,这个配置写法呢,是zoo keepper冒号双斜杠啊zoo keepper的地址,所以说呢,我们得写一个前缀,这是zoo keepper协议的前缀啊,然后呢,我们本机127.0.0.1,我们zoo keepper呢,默认是2181端口启动的,哎,这是一种配置,包括呢这也说了,我们把这个。
06:12
Zoo keep这个协议名呢,你可以单独写出来,哎,你在这儿呢,只写链接,也就是说我写这个,或者是我用下边。Double registry。好,我们写呢proto,哎我们这个协议呢就是zookeeper,哎,我们把zookeeper呢写在这。啊,不写在地址前边,那这样的话,我们address只需要指定服务器的这个地址以及端口就行了,啊两种呢都行。接下来呢,我们来配置第三步,也是非常重要的一步,来看一下之前的double架构图。我们刚才呢,把这个provider服务提供者,我们给他起了一个名字,并且呢指定了注册中心的地址,这样呢,我们一启动它就能注册到注册中心了,但是现在呢,是我们可能还有一个消费者啊,在别的服务器想要调用我们这个服务提供者,那他们之间要通信,通信在哪个端口通信,用什么协议通信,这都是还要指定的,接下来呢,就是我们第三步来指定通信规则。
07:21
通信规则里边呢,包含我们这个通信使用的协议是什么,包括呢,通信用哪个端口。这个呢,我们来使用一个标签,叫我们这个double。Protocol。这个标签里边呢,首先有一个配置项叫name name呢来指定我们协议的名字,协议名呢,我们可以参考前面配置这块呢,先写double,哎,这是固定写法,而它其实真正支持的协议有很多,在这协议参考手册里边,哎有double r mtb等等等等,我们后来呢,再说我们先写double。然后呢,接下来第二个使用port指定我们端口号,端口号呢,呃,随便写就行了,我们就用这个20080好,也就是说使用担保协议在20080端口进行通行,那第三个我们就配置好了,接下来来配置第四个我们要暴露哪个服务,将哪个服务呢,要暴露出去,暴露出去的服务别人就能调用了,我们使用。
08:25
第四步,我们叫暴露服务。暴露出去的服务呢?让别人调用,我们使用搭包。Double double呢service我们使用这个标签暴露服务,然后呢,这一块注意interface,我们要写暴露服务的接口名,我们把这个接口的全类名拿过来,这是我们要相当于把这个用户服务user service暴露出来,让order service来调用,这是暴露这个服务,然后呢,还有一个叫ref。就是呢,我们相当于暴露的是服务的接口,但是服务的真正实现是用ref来指向,Ref是来指指向。
09:10
服务的真正的实现对象。我们真正的实现呢,是我们这个user service里面的这个user service employment,我呢得先把这个user service employment加到容器中来,写一个class,就叫user service,好给他呢给一个ID,比如呢就叫user service。然后呢,我们这个reference就是要指向它这个呢才是服务的实现。来我们把这个服务的实现呢,暴露。在这好,我们来指向它,那么我们这个配置,我们基本呢就配置好了,配置好以后呢,我们来测试一下,怎么测试呢,我们使用这段代码来加载我们STEM的配置,让STEMLC容器一启动就行了,那一启动呢,我们就会自动的将我们这个服务注册到注册中心,好。
10:08
我们就来编写这段代码,好,我来写一个class,我们把它放在gmail下,我们呢,就叫my application,我们的主程序。来启动好,我呢就来写一个慢方法,跟文档一样来写一个慢方法,慢方法呢,让它启动IOC容器,Application contest。把LC容器呢拿来,然后呢,等于new一个class pass类路径下配置文件呢,在类路径下class pass面application contest,然后呢,把我们配置文件的位置给这一写好。然后呢,我们来启动LC容器,这个启动方法呢,我得把它先换成这个类才有好LC.start。我们呢,为了不让咱们这个程序终止我们。点in.read哎,就是说呢,我们在这阻塞读取一个字符就行了,好跟我们这边的写法是一样的,然后呢,我来运行这个程序,大家来看效果。
11:14
我们呢,在这来运行,那运行启动起来呢,我们会加载spring的配置文件,配置文件里边呢,就来配置要连向zoo keepper,包括呢,要将某一个服务暴露好,我们这个启动起来呢,它停在这儿,我们怎么样看呢?我们之前有一个控制台,在这个控制台刷新一下。看到呢,这有一个服务数一应用数一来我们可以在这儿看一下服务的提供者,我点一个提供者,我们能看到呢,我们现在啊,当前服务主机20080端口为我们提供服务了。我们呢,也能看到这有一个叫应用点进来我们看到user service provider,哎,我们这个application的名字就在这,我们就看见了,这是我们这个应用也在启动了,包括提供了哪个服务,我们点一个服务能看到,诶user service呢为我们提供服务了。
12:06
至此,我们服务提供者就配置好了。
我来说两句