一、统一版本
版本按照官网配置很重要,可以去这里查看
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E
二、服务者
2、服务者只需要加,但是版本要跟官网推荐的一样
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.2.6.RELEASE</version>
</dependency>
然后在application配置文件下配置端口、地址、名称
spring.application.name=nacos-provider
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
server.port=8081
接着在Application加上@EnableDiscoveryClient注解
@SpringBootApplication
@EnableDiscoveryClient
public class NacosProviderApplication {
public static void main(String[] args) {
SpringApplication.run(NacosProviderApplication.class, args);
}
}
最后写Controller
@RestController
public class NacosController {
@GetMapping(value = "/echo/{string}")
public String echo(@PathVariable String string) {
return "Hello Nacos Discovery " + string;
}
}
启动后可以通过以下地址来访问就对了http://localhost:8081/echo/我是服务端
三、客户端
也是加发现依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.2.6.RELEASE</version>
</dependency>
加配置文件
spring.application.name=nacos-consumer
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
server.port=8088
management.endpoints.web.exposure.include=*
Application也一样要加@EnableDiscoveryClient
@SpringBootApplication
@EnableDiscoveryClient
public class NacosConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(NacosConsumerApplication.class, args);
}
}
多一个负载均衡和调佣配置,不加这个是找不到RestTemplate的
@Configuration
public class NacosConsumerConfig {
@LoadBalanced
@Bean
public RestTemplate restTemplate(){
return new RestTemplate();
}
}
最后在Controller一定要把服务端的域名写对
@RestController
public class NacosCusumerController {
@Autowired
RestTemplate restTemplate;
@GetMapping(value = "/echo/{str}")
public String echo(@PathVariable String str) {
return restTemplate.getForObject("http://nacos-provider/echo/" + str, String.class);
}
}
最后访问: