SpringBoot项目接入Nacos

312 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第20天,点击查看活动详情


bootstrap.yml

server:
  port: 2001
  servlet:
    context-path: /cloud-nacos


spring:
  application:
    name: cloud-alibaba-nacos
  cloud:
    nacos:
      discovery:
        enabled: true
        server-addr: 101.43.160.149:8848
        namespace: 9862bd7f-2dc2-47a4-9c80-c6290c5c3e2b
        metadata:
          management:
            context-path: ${server.servlet.context-path}/actuator
      config:
        enabled: false
#        namespace:
#        group:

pom依赖

<!-- spring cloud alibaba nacos discovery 依赖 -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <version>2.2.3.RELEASE</version>
</dependency>
<!-- nacos config -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

测试

服务发现

@EnableDiscoveryClient 从 E 版开始,可省略

@RestController
@RequestMapping("/discovery")
@AllArgsConstructor
public class ClientDiscoveryController {

    private ClientDiscoveryService discoveryService;

    @GetMapping("/instance")
    public List<ServiceInstance> getInstance(@RequestParam(defaultValue = "cloud-alibaba-nacos") String serviceId){
       return discoveryService.getInstance(serviceId);
    }
}
@Service
@Slf4j
@AllArgsConstructor
public class ClientDiscoveryService {
    private final DiscoveryClient discoveryClient;

    public List<ServiceInstance> getInstance(String serviceId) {
        List<ServiceInstance> instances = discoveryClient.getInstances(serviceId);
        instances.forEach(instance->{
            log.info("instance host:[{}],instance port:[{}]",instance.getHost(),instance.getPort());
        });
        return instances;
    }
}