002 使用nacos完成服务的注册和发现
一 .概述
在前面我们提到了spring-cloud实现了一个公共的spring-cloud-common的抽象,通过这个抽象可以让我们很简单的替换掉服务的注册中心.
本次,我们首先一个微服务,然后注册到另外一个服务上,此外,我们还是用Ribbon实现服务的发现.
二 .环境的配置
我们本次使用springboot2和springlcoud的正式版本.
首先,我们访问springcloud的版本库.
<dependencies> <!--web--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- actuator--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> </dependencies>
/** * 开启 nacos服务注册发现 */ @EnableDiscoveryClient @SpringBootApplication public class NacosProducerApplication { public static void main(String[] args) { SpringApplication.run(NacosProducerApplication.class, args); } @RestController public class EchoController { @GetMapping(value = "/echo/{string}") public String echo(@PathVariable String string) { return "Hello Nacos Discovery " + string; } } }
server.port=8081 spring.application.name=nacos-producer spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848 management.endpoints.web.exposure.include=*
启动这个springcloud的客户端,我们看看我们的服务是否可以注册到nacos之中.
我们发现了,我们的服务现在已经可以注册到服务注册中心.
二 . 调用微服务
在springcloud之中,我们可以使用多种方式进行客户端的调用,比较简单的一种就是使用openfeign来进行,本次,我们也使用open-feign来实现这个功能.
我们首先创建一个consumer项目.
@FeignClient(value = "nacos-producer") public interface ProducerFeign { @GetMapping("echo/{path}") public String echo(@PathVariable("path") String path); }
我们发现,我们将consumer也注册到服务中心了,我们看看调用的代码.
@Resource private ProducerFeign producerFeign; @GetMapping("echo") public String echo(){ return this.producerFeign.echo("trek"); }
当我们访问http://localhost:8082/echo的时候,我们就可以得到下面的内容.
至此,我们完成了基本的服务注册和发现的内容,下一节,我们开始实现高可用的Nacos服务注册中心.