SpringCloud服务注册中心Nacos
SpringCloud服务注册中心Nacos
1.解压后运行bin目录下的startup.cmd
2.访问Nacos
进入登录页面:http://localhost:8848/nacos/
默认账号密码都是nacos
3.因为我需要在一个项目中调用另外一个项目的方法,也就是模块开发,所以需要把两个服务注册到nacos中
4.引入依赖
<!--服务注册-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
5.在项目application.properties中加入配置
# nacos服务地址
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
6.启动类添加注解
7.显示
Feign调用服务
1.导入依赖
<!--服务调用-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
2.在调用端的启动类添加注解
@EnableFeignClients
3.在调用端,创建interface方法,使用注解指定调用服务名称,定义调用方法路径
import com.mine.guli.commonutils.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
@Component
@FeignClient("service-vod") //注册中心服务的名字
public interface VodClient {
//定义调用方法的路径
//删除阿里云视频
//@PathVariable一定要注意名称,否则会出错
@DeleteMapping("/eduvod/video/removeAlyVideo/{id}")
public R removeAlyVideo(@PathVariable("id") String id);
}
4.Controller层注入service方法
@Autowired
private VodClient vodClient;
@DeleteMapping("/{id}")
public R deleteVideo(@PathVariable String id){
//根据小节id获取视频id,调用实现删除
EduVideo eduVideo = videoService.getById(id);
String videoSourceId = eduVideo.getVideoSourceId();
//判断小节里面是否有视频id
if(!StringUtils.isEmpty(videoSourceId)){
//根据视频id删除,远程调用实现视频删除
vodClient.removeAlyVideo(videoSourceId);
}
//删除小节
videoService.removeById(id);
return R.ok();
}
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 时间海!
评论