• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

7、Spring cloud 注册心:Nacos

武飞扬头像
麻侬
帮助1

        本篇介绍Spring cloud怎么使用Nacos作为注册中心来进行服务注册及服务发现,并进行简单的测试来验证。

访问Nacos Spring Cloud 快速开始,文章里面给我们给出了Spring cloud使用nacos作为配置中心及注册中心的用法,启动配置管理我们在后面的配置中心章节再进行讲解,这里我们关注注册中心即可。

学新通

1、服务提供者

我们添加项目子工程module,命名为provider-nacos8001,然后添加我们的pom依赖

  1.  
    <dependencies>
  2.  
    <dependency>
  3.  
    <groupId>org.springframework.boot</groupId>
  4.  
    <artifactId>spring-boot-starter-web</artifactId>
  5.  
    <version>2.6.11</version>
  6.  
    </dependency>
  7.  
    <dependency>
  8.  
    <groupId>org.springframework.boot</groupId>
  9.  
    <artifactId>spring-boot-starter-actuator</artifactId>
  10.  
    <version>2.6.11</version>
  11.  
    </dependency>
  12.  
    <dependency>
  13.  
    <groupId>com.alibaba.cloud</groupId>
  14.  
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
  15.  
    <version>2.0.4.RELEASE</version>
  16.  
    </dependency>
  17.  
    </dependencies>
  18.  
     
  19.  
    <build>
  20.  
    <plugins>
  21.  
    <plugin>
  22.  
    <groupId>org.springframework.boot</groupId>
  23.  
    <artifactId>spring-boot-maven-plugin</artifactId>
  24.  
    </plugin>
  25.  
    </plugins>
  26.  
    </build>
学新通

这里我们选择nacos的版本为2.0.1.RELEASE,对应的cloud的2021.0.4

添加配置文件application.yml,并进行nacos服务的注册配置

  1.  
    server:
  2.  
    port: 8001
  3.  
     
  4.  
    spring:
  5.  
    application:
  6.  
    name: provider
  7.  
    cloud:
  8.  
    nacos:
  9.  
    discovery:
  10.  
    server-addr: localhost:8848

添加项目启动类ProviderNacos8001Application.class

  1.  
    @SpringBootApplication
  2.  
    @EnableDiscoveryClient
  3.  
    public class ProviderNacos8001Application {
  4.  
    public static void main(String[] args) {
  5.  
    SpringApplication.run(ProviderNacos8001Application.class,args);
  6.  
    }
  7.  
    }

通过 Spring Cloud 原生注解 @EnableDiscoveryClient 开启服务注册发现功能

添加生产测试接口类ProviderController.class

  1.  
    @RestController
  2.  
    @RequestMapping("/nacos")
  3.  
    public class ProviderController {
  4.  
     
  5.  
    @Value("${server.port}")
  6.  
    private String port;
  7.  
     
  8.  
     
  9.  
    @GetMapping("/getPort")
  10.  
    public String getPort(){
  11.  
    return "访问服务的端口为:" port;
  12.  
    }
  13.  
    }

启动我们的生产者provider-nacos8001,启动完毕后我们在nacos的管理页面发现服务已经注册成功。

学新通

 2、服务消费者

创建子工程consumer-nacos8002,添加项目依赖pom

  1.  
    <dependencies>
  2.  
    <dependency>
  3.  
    <groupId>org.springframework.boot</groupId>
  4.  
    <artifactId>spring-boot-starter-web</artifactId>
  5.  
    <version>2.6.11</version>
  6.  
    </dependency>
  7.  
    <dependency>
  8.  
    <groupId>org.springframework.boot</groupId>
  9.  
    <artifactId>spring-boot-starter-actuator</artifactId>
  10.  
    <version>2.6.11</version>
  11.  
    </dependency>
  12.  
    <dependency>
  13.  
    <groupId>com.alibaba.cloud</groupId>
  14.  
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
  15.  
    <version>2.0.4.RELEASE</version>
  16.  
    </dependency>
  17.  
    </dependencies>
  18.  
     
  19.  
    <build>
  20.  
    <plugins>
  21.  
    <plugin>
  22.  
    <groupId>org.springframework.boot</groupId>
  23.  
    <artifactId>spring-boot-maven-plugin</artifactId>
  24.  
    </plugin>
  25.  
    </plugins>
  26.  
    </build>
学新通

添加项目配置文件application.yml,添加nacos注册配置

  1.  
    server:
  2.  
    port: 8002
  3.  
    spring:
  4.  
    application:
  5.  
    name: consumer
  6.  
    cloud:
  7.  
    nacos:
  8.  
    discovery:
  9.  
    server-addr: localhost:8848

添加项目启动类ConsumerNacos8002Application.class,添加我们的Ribbon负载配置RibbonConfig.class。

  1.  
    @SpringBootApplication
  2.  
    @EnableDiscoveryClient
  3.  
    public class ConsumerNacos8002Application {
  4.  
    public static void main(String[] args) {
  5.  
    SpringApplication.run(ConsumerNacos8002Application.class,args);
  6.  
    }
  7.  
    }
  1.  
    @Configuration
  2.  
    public class RibbonConfig {
  3.  
     
  4.  
    @Bean
  5.  
    @LoadBalanced
  6.  
    public RestTemplate loadBalancedRestTemplate(){
  7.  
    return new RestTemplate();
  8.  
    }
  9.  
    }

添加消费测试接口类ConsumerController.class

  1.  
    @RestController
  2.  
    @RequestMapping("/consumer")
  3.  
    public class ConsumerController {
  4.  
     
  5.  
    @Autowired
  6.  
    private RestTemplate loadBalancedRestTemplate;
  7.  
     
  8.  
    @GetMapping("/getProviderPort")
  9.  
    public String getProviderPort(){
  10.  
    return loadBalancedRestTemplate.getForObject("http://provider/nacos/getPort",String.class);
  11.  
    }
  12.  
    }

启动我们的消费者项目,然后进入nacos管理页面进行查看注册情况。

学新通

这里两个项目我们都注册好了,请求我们的消费者接口http://localhost:8002/consumer/getProviderPort

学新通 成功返回我们的提供者的端口号,至此我们使用Nacos作为Spring Cloud的注册中心就配置好了。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgaaeab
系列文章
更多 icon
同类精品
更多 icon
继续加载