Nacos服务注册与发现

1/启动Nacos服务

 

下载nacos服务端,有多种方式,这里以windows平台1.2.0.beta.1编译后的压缩包单机模式为例,更多方式参考:https://nacos.io/zh-cn/docs/quick-start.html

下载解压之后到nacos->bin->startup.cmd,直接双击运行即可。

浏览器访问localhost:8848可以看到以下界面

 

 2 创建Maven父工程(相关依赖的版本可以到中央仓库查询https://mvnrepository.com)

pom.xml

<modules>
<module>nacos-spring-cloud-provider-example</module>
<module>nacos-spring-cloud-consumer-example</module>
</modules>
<dependencies>
<!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-nacos-discovery -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.2.0.RELEASE</version>
</dependency>

<!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client -->
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>1.2.0-beta.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.2.4.RELEASE</version>
</dependency>

<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.11</version>
</dependency>
</dependencies>

3服务提供者

NacosProviderApplication.java
@SpringBootApplication
@EnableDiscoveryClient
public class NacosProviderApplication {

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

    @RestController
    class EchoController {
        @RequestMapping(value = "/echo/{string}", method = RequestMethod.GET)
        public String echo(@PathVariable String string) {
            return "Hello Nacos Discovery " + string;
        }
    }
}

application.yml

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

 

4消费者

@SpringBootApplication
@EnableDiscoveryClient
public class NacosConsumerApplication {

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

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

        private final RestTemplate restTemplate;

        @Autowired
        public TestController(RestTemplate restTemplate) {this.restTemplate = restTemplate;}

        @RequestMapping(value = "/echo/{str}", method = RequestMethod.GET)
        public String echo(@PathVariable String str) {

            return restTemplate.getForObject("http://service-provider/echo/" + str, String.class);
        }
    }
}

application.yml

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

5服务者消费者服务均运行起来,可以看到在nacos里看到这两个服务已经注册成功

 

 通过浏览器访问localhost:8871/echo/hellonacos

 

posted @ 2020-02-23 10:55  牧羊人-hunter  阅读(5626)  评论(0编辑  收藏  举报