002-spring cloud alibaba 之nacos注册中心-服务注册

39 阅读1分钟

服务注册

上一节搭建nacos环境。这一节主要是本地搭建两个服务。然后注册到nacos中,并且相互调用。使用nacos单机版

服务端口应用名
服务提供者9001nacos-provider
服务消费者9101nacos-consumer

应用一:nacos-provider

第1步

新建maven项目,引入依赖

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

第2步

增加注解:@EnableDiscoveryClient

@EnableDiscoveryClient
@SpringBootApplication
public class NacosProvider9001Application {

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

}

第3步

增加配置文件

server:
  port: 9001

spring:
  application:
    name: nacos-provider
  cloud:
    discovery:
      server-addr: 127.0.0.1:8848

management:
  endpoint:
    web:
      exposure:
        include:'*'

第4步

创建接口,等待被调用

@RestController
public class UserController {

    @GetMapping("/hello")
    public String hello(HttpServletRequest request){
        System.out.println(".......Nacos Provider run......."+request.getHeader("X-Request-red"));
        System.out.println(request.getParameter("red"));
        return "hello boge ...9001";
    }
}

应用二:nacos-consumer

第1步

新建maven项目,引入依赖

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

第2步

增加注解:@EnableDiscoveryClient

@EnableDiscoveryClient
@SpringBootApplication
public class NacosConsumer9101Application {

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

    @Bean
    @LoadBalanced
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
}

第3步

增加配置文件

server:
  port: 9101
spring:
  application:
    name: nacos-consumer
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848

management:
  endpoint:
    web:
      exposure:
        include:'*'
service-url:
  nacos-user-service: http://nacos-provider

第4步

调用服务

@RestController
public class UserController {

    @Value("${service-url.nacos-user-service}")
    private String serverURL;

    @Autowired
    private RestTemplate restTemplate;

    @GetMapping("/helloConsumer")
    public String helloProvider(){
        System.out.println("------消费者接口执行了-----");
        // 通过RestTemplate 实现 服务的发现和调用
        return restTemplate.getForObject(serverURL+"/hello",String.class);
    }
}

注册到nacos注册中心

image.png

验证

image.png