简介
Nacos的功能包含服务注册中心以及配置中心,Nacos=SpringCloud Config+Eureka ,
Nacos 官网:http://dubbo.apache.org/zh-cn/docs/user/references/registry/nacos.html
可以根据官网具体学习
Nacos服务注册中心
1、添加 Maven依赖管理
com.alibaba.cloud
spring-cloud-alibaba-dependencies
2.1.0.RELEASE
pom
import
2、启动Nacos服务端
启动文件Nacos安装目录 bin目录下startup.cmd
3、访问http://127.0.0.1:8848/nacos ,nacos默认端口8848 用户名 nacos 密码nacos,所有在线可用的服务都可以在服务列表中看到
4、修改服务提供者
- 引入maven依赖
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-discovery
- yml文件配置nacos服务等信息
server.port=8081 #服务器端端口
spring.application.name=nacos-provider //应用名称,nacos默认使用应用名称作为服务名称
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848 //nacos服务的地址
management.endpoints.web.exposure.include=* //监控端点
#spring.cloud.nacos.discovery=false 不想使用nacos时配置
- 在启动类上添加@EnableDiscoveryClient注解
5、客户端调用
可用使用FeignClient或者RestTemplate 等HTTP请求调用服务提供者,客户端也需要配置naocs服务注册,调用服务提供者需要使用服务的名称调用。示例如下
@SpringBootApplication
@EnableDiscoveryClient
public class NacosConsumerApp {
@RestController
public class NacosController{
@Autowired
private LoadBalancerClient loadBalancerClient;
@Autowired
private RestTemplate restTemplate;
@Value("${spring.application.name}")
private String appName;
@GetMapping("/echo/app-name")
public String echoAppName(){
//Access through the combination of LoadBalanceClient and RestTemplate
ServiceInstance serviceInstance = loadBalancerClient.choose("nacos-provider");
String path = String.format("http://%s:%s/echo/%s",serviceInstance.getHost(),serviceInstance.getPort(),appName);
System.out.println("request path:" +path);
return restTemplate.getForObject(path,String.class);
}
}
//Instantiate RestTemplate Instance
@Bean
public RestTemplate restTemplate(){
return new RestTemplate();
}
public static void main(String[] args) {
SpringApplication.run(NacosConsumerApp.class,args);
}
}
启动服务提供者与客户端即可调用