一 .概述
在前面我们提到了spring-cloud实现了一个公共的spring-cloud-common的抽象,通过这个抽象可以让我们很简单的替换掉服务的注册中心.
本次,我们首先一个微服务,然后注册到另外一个服务上,此外,我们还是用Ribbon实现服务的发现.
二 .环境的配置
我们本次使用springboot2和springlcoud的正式版本.
首先,我们访问springcloud的版本库.
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-actuator
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-discovery
/**
* 开启 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");
}
至此,我们完成了基本的服务注册和发现的内容,下一节,我们开始实现高可用的Nacos服务注册中心.
原文:https://www.cnblogs.com/trekxu/p/11398928.html