美文网首页java学习笔记整理
如何使用Nacos做注册中心

如何使用Nacos做注册中心

作者: _借东西的小人 | 来源:发表于2020-11-19 16:09 被阅读0次

    要解决的问题:假设我有两个服务,分别是服务service-edu(服务调用者)和服务service-vod(服务提供者),想在服务service-edu中调用服务service-vod的方法。

    将服务在注册中心中注册

    1.下载nacos并成功启动,进入登录页面进行登录。

    注意用户名和密码都是nacos

    2.点击服务管理下的服务列表,可以发现是空的

    image.png

    3.在这两个服务的父工程中引入服务注册依赖

    项目结构图.png
            <!--服务注册-->
             <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

    启动类.png
    启动服务service-edu和服务service-vod,刷新服务列表,会显示当前注册的所有服务,以及每个服务的集群数目、实例数、健康实例数。点击详情,我们还能看到每个服务具体的实例信息,如下图所示:
    服务列表.png

    服务调用者

    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);
    

    相关文章

      网友评论

        本文标题:如何使用Nacos做注册中心

        本文链接:https://www.haomeiwen.com/subject/jncliktx.html