nacos-discovery-spring-boot-starter 实现服务的注册与发现

nacos-discovery-spring-boot-starter 实现服务的注册与发现

nacos 启动可参考 https://blog.csdn.net/qq_41538097/article/details/123858353

nacos-config-spring-boot-starter 配置动态变更参考 https://blog.csdn.net/qq_41538097/article/details/123896966

1、导入 nacos-discovery-spring-boot-starter 依赖
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
     <dependency>
         <groupId>com.alibaba.boot</groupId>
         <artifactId>nacos-config-spring-boot-starter</artifactId>
         <version>0.2.10</version>
     </dependency>
     <dependency>
         <groupId>com.alibaba.boot</groupId>
         <artifactId>nacos-discovery-spring-boot-starter</artifactId>
         <version>0.2.10</version>
     </dependency>
2、添加配置

服务注册名和应用名相同,必须配置 nacos.config.server-addr: 否则启动报错server error: such as timeout. Request nacos server failed:

server:
  port: 20001
nacos:
  discovery:
    #server-addr: 42.193.0.90:8848
    auto-register: true
    username: nacos
    password: nacos
    namespace: 2022-4-1-dev
    register:
      clusterName: SPRINGBOOT
      enabled: true
      ephemeral: true
      groupName: DEFAULT_GROUP
      healthy: true
      ip: 127.0.0.1
      metadata:
        username: admin
      port: 20001
      weight: 0.6
  config:
    server-addr: 42.193.0.90:8848
spring:
  application:
    name: SPRING_BOOT_SERVICE_DISCOVERY

启动项目可以在 nacos 服务看到服务注册成功
在这里插入图片描述

3、获取服务调用接口

启动类不能添加@EnableNacosDiscovery注解,否则服务注册失败

@SpringBootApplication
public class NacosSpringbootDiscoveryExamplesApplication {
    public static void main(String[] args) {
        SpringApplication.run(NacosSpringbootDiscoveryExamplesApplication.class, args);
    }
}

调用 SPRING_BOOT_SERVICE_CONFIG 服务的 http://127.0.0.1:20000/config/teacher 接口
在这里插入图片描述
SPRING_BOOT_SERVICE_DISCOVERY 服务调用 SPRING_BOOT_SERVICE_CONFIG 服务的 http://127.0.0.1:20000/config/teacher 接口

RestTemplate 详细使用方法参考 https://blog.csdn.net/qq_41538097/article/details/123560238

@RestController
@RequestMapping("/discovery")
public class DiscoveryController {
    @NacosInjected
    private NamingService namingService;

    @GetMapping("/select")
    public String selectService() throws NacosException {
        Instance instance = namingService.selectOneHealthyInstance("SPRING_BOOT_SERVICE_CONFIG", "DEFAULT_GROUP");
        String ip = instance.getIp();
        int port = instance.getPort();
        RestTemplate restTemplate = new RestTemplate();
        String url = String.format("http://%s:%d/config/teacher", ip, port);
        ResponseEntity<String> responseEntity = restTemplate.getForEntity(url, String.class);
        return responseEntity.getBody();
    }
}

测试接口 http://127.0.0.1:20001/discovery/select
在这里插入图片描述
demo 地址:https://gitee.com/LingYunYe/nacos-example-study/tree/master/nacos-springboot-discovery-examples

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值