服务发现Nacos-注册中心
我们这个模块需要调用别的模块的接口以得到别人接口的数据,这就是远程调用,这就需要用到注册中心。
我们把调用和被调用模块都在注册中心进行注册。注册中心类似于中介,他是联系租房者和房东之间的桥梁,房东再房产中介登记自己的信息,租房子去房产中介找到合适的房子。
删除课程(edu模块)的同时删除云端视频(vod模块),所以需要在edu模块删除课程时调用vod模块删除视频的方法
先将edu服务和vod服务都到注册中心注册,然后现在edu要调用vod,它先到注册中心找到vod的ip端口号及服务的相关信息。
模块向注册中心提供ip和端口号,然后消费者从注册中心得到生产者的ip端口号,然后消费者自己根据这个ip和端口号去调用生产者中的方法
一、安装过程
二、使用步骤
1.加入依赖
注意:nacos的依赖只有再用到适合才加入,否则会报错
2.在消费者(edu)和生产者(vod)服务进行配置并加上服务名,两个的IP地址都是这个(nacos在本地的8848端口)
3.消费者(edu)和生产者(vod)服务都需要注册到注册中心,即在他们两个服务的启动类加上注解@EnableDiscoveryClient表示该模块在nacos进行注册
此时,两个服务都注册到注册中心
服务调用-Feign
Feign是Netflix开发的声明式、模板化的HTTP客户端, Feign可以帮助我们更快捷、优雅地调用HTTP API。
Feign支持多种注解,例如Feign自带的注解或者JAX-RS注解等。
Spring Cloud对Feign进行了增强,使Feign支持了Spring MVC注解,并整合了Ribbon和Eureka,从而让Feign的使用更加方便。
Spring Cloud Feign是基于Netflix feign实现,整合了Spring Cloud Ribbon和Spring Cloud Hystrix,除了提供这两者的强大功能外,还提供了一种声明式的Web服务客户端定义的方式。
Spring Cloud Feign帮助我们定义和实现依赖服务接口的定义。在Spring Cloud feign的实现下,只需要创建一个接口并用注解方式配置它,即可完成服务提供方的接口绑定,简化了在使用Spring Cloud Ribbon时自行封装服务调用客户端的开发量。
一、使用步骤
1、导入依赖(没使用之前不要加这个依赖)
2、只在调用端edu的启动类加注解
3.通过Fegin进行服务调用(在被封装接口上写注解@FeignClient,在消费者服务的启动类上加上@EnableFeignClients,这样消费者才能去调用相应的服务)
用Feign调用的代码都需要满足这个结构
3.1封装被调用服务接口
可以新建一个模块,专门写封装被调用服务的接口,但其实也可以在各个消费者模块里面写我要调用的服务的封装接口
edu是调用者,vod是被调用者
也可以专门开一个服务来封装各个服务接口
3.2消费者调用被封装接口
引入模块专门封装的模块——这一步只有专门开一个服务来封装各个服务接口才需要,即导入那个专门的服务
总结
@EnableDiscoveryClient 消费者生产者的启动类都要
@EnableFeignClients只在消费者的启动类
@FeignClient(“服务名”)在独立出来的接口中的生产者(被调用者)的方法上
如果现在专门用一个模块去写被封装的接口,则我们需要在消费者启动类上加该属性,去扫描生产者接口模块所在的路径