赞
踩
本篇介绍Spring cloud怎么使用Nacos作为注册中心来进行服务注册及服务发现,并进行简单的测试来验证。
访问Nacos Spring Cloud 快速开始,文章里面给我们给出了Spring cloud使用nacos作为配置中心及注册中心的用法,启动配置管理我们在后面的配置中心章节再进行讲解,这里我们关注注册中心即可。
我们添加项目子工程module,命名为provider-nacos8001,然后添加我们的pom依赖
- <dependencies>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- <version>2.6.11</version>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-actuator</artifactId>
- <version>2.6.11</version>
- </dependency>
- <dependency>
- <groupId>com.alibaba.cloud</groupId>
- <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
- <version>2.0.4.RELEASE</version>
- </dependency>
- </dependencies>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- </plugin>
- </plugins>
- </build>
这里我们选择nacos的版本为2.0.1.RELEASE,对应的cloud的2021.0.4
添加配置文件application.yml,并进行nacos服务的注册配置
- server:
- port: 8001
-
- spring:
- application:
- name: provider
- cloud:
- nacos:
- discovery:
- server-addr: localhost:8848
添加项目启动类ProviderNacos8001Application.class
- @SpringBootApplication
- @EnableDiscoveryClient
- public class ProviderNacos8001Application {
- public static void main(String[] args) {
- SpringApplication.run(ProviderNacos8001Application.class,args);
- }
- }
通过 Spring Cloud 原生注解
@EnableDiscoveryClient
开启服务注册发现功能
添加生产测试接口类ProviderController.class
- @RestController
- @RequestMapping("/nacos")
- public class ProviderController {
-
- @Value("${server.port}")
- private String port;
-
-
- @GetMapping("/getPort")
- public String getPort(){
- return "访问服务的端口为:" + port;
- }
- }
启动我们的生产者provider-nacos8001,启动完毕后我们在nacos的管理页面发现服务已经注册成功。
创建子工程consumer-nacos8002,添加项目依赖pom
- <dependencies>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- <version>2.6.11</version>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-actuator</artifactId>
- <version>2.6.11</version>
- </dependency>
- <dependency>
- <groupId>com.alibaba.cloud</groupId>
- <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
- <version>2.0.4.RELEASE</version>
- </dependency>
- </dependencies>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- </plugin>
- </plugins>
- </build>
添加项目配置文件application.yml,添加nacos注册配置
- server:
- port: 8002
- spring:
- application:
- name: consumer
- cloud:
- nacos:
- discovery:
- server-addr: localhost:8848
添加项目启动类ConsumerNacos8002Application.class,添加我们的Ribbon负载配置RibbonConfig.class。
- @SpringBootApplication
- @EnableDiscoveryClient
- public class ConsumerNacos8002Application {
- public static void main(String[] args) {
- SpringApplication.run(ConsumerNacos8002Application.class,args);
- }
- }
- @Configuration
- public class RibbonConfig {
-
- @Bean
- @LoadBalanced
- public RestTemplate loadBalancedRestTemplate(){
- return new RestTemplate();
- }
- }
添加消费测试接口类ConsumerController.class
- @RestController
- @RequestMapping("/consumer")
- public class ConsumerController {
-
- @Autowired
- private RestTemplate loadBalancedRestTemplate;
-
- @GetMapping("/getProviderPort")
- public String getProviderPort(){
- return loadBalancedRestTemplate.getForObject("http://provider/nacos/getPort",String.class);
- }
- }
启动我们的消费者项目,然后进入nacos管理页面进行查看注册情况。
这里两个项目我们都注册好了,请求我们的消费者接口http://localhost:8002/consumer/getProviderPort
成功返回我们的提供者的端口号,至此我们使用Nacos作为Spring Cloud的注册中心就配置好了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。