spring cloud alibab nacos:nacos作为注册中心如何使用
Posted 阿里架构师_James
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring cloud alibab nacos:nacos作为注册中心如何使用相关的知识,希望对你有一定的参考价值。
导语
要解决的问题:假设我有两个服务,分别是服务service-edu(服务调用者)和服务service-vod(服务提供者),想在服务service-edu中调用服务service-vod的方法。
将服务在注册中心中注册
1.下载nacos并成功启动,进入登录页面进行登录。
注意用户名和密码都是nacos
2.点击服务管理下的服务列表,可以发现是空的
3.在这两个服务的父工程中引入服务注册依赖
<!--服务注册-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
4.分别给服务service-edu和服务service-vod
的配置文件application.properties中添加nacos服务地址
#nacos服务地址
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
5.分别给服务service-edu和服务service-vod的启动类上添加注解,注册nacos
@EnableDiscoveryClient
启动服务service-edu和服务service-vod,刷新服务列表,会显示当前注册的所有服务,以及每个服务的集群数目、实例数、健康实例数。点击详情,我们还能看到每个服务具体的实例信息,如下图所示:
服务调用者
Feign是SpringCloud中服务消费端的调用框架。
在SpringCloud中,使用Feign非常简单——创建一个接口,并在接口上添加一些注解,代码就完成了。
1.在这两个服务的父工程中引入服务调用依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
2.创建一个接口,使用@FeignClient
注解,调用服务提供者的方法
@FeignClient("service-vod")//service-vod就是在service-vod服务的配置文件中定义的服务名
@Component
public interface VodClient {
/**
* 定义要调用的方法路径
* 根据视频id删除阿里云中的视频
* @PathVariable("id")注解一定要指定参数名称,否则出错
* @param id
* @return
*/
@DeleteMapping("/eduvod/video/removeAlyVideo/{id}")
public R deleteVideoById(@PathVariable("id") String id);
}
3.在控制层调用service-vod服务的方法
注入刚刚创建的接口即可调用方法
//注入vodClient
@Autowired
private VodClient vodClient;
vodClient.deleteVideoById(videoId);
写在最后
如果你觉得自己学习效率低,缺乏正确的指导,可以加入资源丰富,学习氛围浓厚的Java技术交流圈、BATJ、TMD内推圈一起学习交流吧!
[Java架构群]
群内有许多来自一线的技术大牛,也有在小厂或外包公司奋斗的码农,我们致力打造一个平等,高质量的JAVA交流圈子,不一定能短期就让每个人的技术突飞猛进,但从长远来说,眼光,格局,长远发展的方向才是最重要的。
码字不易,如果觉得本篇文章对你有用的话,请给我一键三连!关注作者,后续会有更多的干货分享,请持续关注!
以上是关于spring cloud alibab nacos:nacos作为注册中心如何使用的主要内容,如果未能解决你的问题,请参考以下文章
spring cloud 与 spring boot 和 spring cloud alibab 版本号对应