• 7、Spring cloud 注册中心之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的注册中心就配置好了。

     

  • 相关阅读:
    分组交换技术
    【C++初阶】模板
    Web Speech API-语音合成
    Python基础-6-字典
    【无标题】
    TypeScript学习 | 泛型
    区块链技术与应用 - 学习笔记1【引言】
    游戏SDK应用内悬浮窗的实现(四)
    【软件设计师21天-考点整理】3)计算机系统构成及硬件基础知识
    APP软件外包开发流程
  • 原文地址:https://blog.csdn.net/qq904748592/article/details/127801142