当前位置:   article > 正文

7、Spring cloud 注册中心之Nacos_springcloud nacos注册中心

springcloud nacos注册中心

        本篇介绍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. <build>
  19. <plugins>
  20. <plugin>
  21. <groupId>org.springframework.boot</groupId>
  22. <artifactId>spring-boot-maven-plugin</artifactId>
  23. </plugin>
  24. </plugins>
  25. </build>

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

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

  1. server:
  2. port: 8001
  3. spring:
  4. application:
  5. name: provider
  6. cloud:
  7. nacos:
  8. discovery:
  9. 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. @Value("${server.port}")
  5. private String port;
  6. @GetMapping("/getPort")
  7. public String getPort(){
  8. return "访问服务的端口为:" + port;
  9. }
  10. }

启动我们的生产者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. <build>
  19. <plugins>
  20. <plugin>
  21. <groupId>org.springframework.boot</groupId>
  22. <artifactId>spring-boot-maven-plugin</artifactId>
  23. </plugin>
  24. </plugins>
  25. </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. @Bean
  4. @LoadBalanced
  5. public RestTemplate loadBalancedRestTemplate(){
  6. return new RestTemplate();
  7. }
  8. }

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

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

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

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

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

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/182361
推荐阅读
相关标签
  

闽ICP备14008679号