Nacos是阿里巴巴最新开源的项目,核心定位是“一个更易于帮助构建云原生应用的动态服务发现、配置和服务管理平台”。功能十分强大,这次使用他的注册中心功能。
1.下载和启动nacos中心:
https://nacos.io/zh-cn/下载nacos,在其bin文件夹中找到startup.cmd,并在命令行窗口启动,(可能无法找到java环境,需修改启动文件)。
输入http://localhost:8848/nacos,进入nacos主页,用户名和密码均为nacos。如图所示:
2.配置服务端:
和eureka一样,也需要配置客户端和服务端。
首先需要引入jar包:
<!--SpringCloud ailibaba nacos -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
然后写yml:
spring:
application:
name: nacos-payment-provider
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848 #nacos地址
将该服务端注册到nacos中。
3.配置客户端:
引入jar包:
<!--SpringCloud ailibaba nacos -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
写yml:
spring:
application:
name: nacos-order-consumer
cloud:
nacos:
discovery:
server-addr: localhost:8848
#消费者将要去访问的微服务名称(注册成功进nacos的微服务提供者)
service-url:
nacos-user-service: http://nacos-payment-provider
就像这样,注册完成
nacos也集成了ribbon支持负载均衡:
配置RestTemplate:
@Configuration
public class BeanConfig {
@LoadBalanced
@Bean
public RestTemplate getRestTemplate(){
return new RestTemplate();
}
}
实现负载均衡:
@RestController
public class OrderNacosController {
@Resource
private RestTemplate restTemplate;
@Value("${service-url.nacos-user-service}")
private String serviceURL;
@GetMapping("consumer/payment/nacos/{id}")
public String getInfo(@PathVariable("id" )long id){
return restTemplate.getForObject(serviceURL+"/payment/get/"+id,String.class);
}