zoukankan      html  css  js  c++  java
  • 002 使用nacos完成服务的注册和发现

    一 .概述

     在前面我们提到了spring-cloud实现了一个公共的spring-cloud-common的抽象,通过这个抽象可以让我们很简单的替换掉服务的注册中心.

     本次,我们首先一个微服务,然后注册到另外一个服务上,此外,我们还是用Ribbon实现服务的发现.

    二 .环境的配置

     我们本次使用springboot2和springlcoud的正式版本.

     首先,我们访问springcloud的版本库.

        <dependencies>
            <!--web-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <!-- actuator-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            </dependency>
        </dependencies>
    

      

    /**
     * 开启 nacos服务注册发现
     */
    @EnableDiscoveryClient
    @SpringBootApplication
    public class NacosProducerApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(NacosProducerApplication.class, args);
        }
    
        @RestController
        public class EchoController {
            @GetMapping(value = "/echo/{string}")
            public String echo(@PathVariable String string) {
                return "Hello Nacos Discovery " + string;
            }
        }
    }
    

      

    server.port=8081
    spring.application.name=nacos-producer
    spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
    management.endpoints.web.exposure.include=*
    

      

    启动这个springcloud的客户端,我们看看我们的服务是否可以注册到nacos之中.

    我们发现了,我们的服务现在已经可以注册到服务注册中心.

    二 . 调用微服务

    在springcloud之中,我们可以使用多种方式进行客户端的调用,比较简单的一种就是使用openfeign来进行,本次,我们也使用open-feign来实现这个功能.

    我们首先创建一个consumer项目.

    @FeignClient(value = "nacos-producer")
    public interface ProducerFeign {
    
        @GetMapping("echo/{path}")
        public String echo(@PathVariable("path") String path);
    }

    我们发现,我们将consumer也注册到服务中心了,我们看看调用的代码.

      @Resource
        private ProducerFeign producerFeign;
    
        @GetMapping("echo")
        public String echo(){
            return this.producerFeign.echo("trek");
        }
    

      当我们访问http://localhost:8082/echo的时候,我们就可以得到下面的内容.

    至此,我们完成了基本的服务注册和发现的内容,下一节,我们开始实现高可用的Nacos服务注册中心.

  • 相关阅读:
    Jmeter性能测试 入门
    线程模型——什么是线程池、以及怎样正确地配置线程池
    在Spring Bean的生命周期中各方法的执行顺序
    @Autowired @Qualifier
    @Autowired还可以注入List和Map
    springcloud ribbon的 @LoadBalanced注解
    CAS实现SSO 单点登录
    Docker 概念-2
    你的JavaBean是否真的需要实现Serializable
    基于django的会议室预订系统
  • 原文地址:https://www.cnblogs.com/trekxu/p/11398928.html
Copyright © 2011-2022 走看看