-
安装nacos server https://nacos.io/zh-cn/docs/quick-start.html
下载nacos压缩包,解压并执行
startup.sh -m standalone
打开
localhost:8848/nacos
控制后台查看服务启动情况 -
注册服务provider https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html
-
引入pom
<dependencies> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.3.2.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> <version>2.3.2.RELEASE</version> </dependency> </dependencies>
-
配置application.yml
spring: application: name: nacos-provider # 服务名 cloud: nacos: discovery: server-addr: 81.71.127.222:8848 # nacos服务地址 server: port: 8070
-
增加@EnableDiscoveryClient注解
@SpringBootApplication @EnableDiscoveryClient # 开启服务发现 public class ProviderApplication { public static void main(String[] args) { SpringApplication sp = new SpringApplication(ProviderApplication.class); sp.run(args); } @RestController public class EchoController { @GetMapping(value = "/echo/{string}") public String echo(@PathVariable String string) { return "这是provider的回复! " + string; } } }
-
-
启动服务消费consumer https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html
-
pom (与provider pom一致)
<dependencies> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.3.2.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> <version>2.3.2.RELEASE</version> </dependency> </dependencies>
-
配置application.yml
spring: application: name: nacos-consumer # 消费者名称 cloud: nacos: discovery: server-addr: localhost:8848 # nacos服务地址 server: port: 8080
-
增加@EnableDiscoveryClient注解. 其中使用@LoadBalanced集成Ribbon
@SpringBootApplication @EnableDiscoveryClient # 开启服务发现 public class ConsumerApplication { @LoadBalanced @Bean public RestTemplate restTemplate() { return new RestTemplate(); } public static void main(String[] args) { SpringApplication.run(ConsumerApplication.class, args); } @RestController public class EchoController { private final RestTemplate restTemplate; @Autowired public EchoController(RestTemplate restTemplate) { this.restTemplate = restTemplate; } @RequestMapping(value = "/echo/{str}", method = RequestMethod.GET) public String echo(@PathVariable String str) { # nacos-provider 就是provider的服务名 return restTemplate.getForObject("http://nacos-provider/echo/" + str, String.class); } } }
-
-
启动provider及consumer,可以在控制后台看到两个服务
-
调用consumer的/echo/xxx api ,已经转发到了provider
$ curl http://localhost:8080/echo/wow 这是provider的回复!wow
nacos discovery 服务发现 - 快速配置
最新推荐文章于 2024-06-12 16:41:18 发布