一、nacos简介
Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。它是 Spring
Cloud Alibaba 组件之一,负责服务注册发现和服务配置,可以这样认为nacos=eureka+config。
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速
实现动态服务发现、服务配置、服务元数据及流量管理。
从上面的介绍就可以看出,nacos的作用就是一个注册中心,用来管理注册上来的各个微服务。
二、搭建nacos环境
1.下载安装nacos
下载地址: https://github.com/alibaba/nacos/releases
下载zip格式的安装包,然后进行解压缩操作
2.启动nacos
#切换目录
cd nacos/bin
#命令启动
startup.cmd -m standalone
3.访问nacos
打开浏览器输入http://localhost:8848/nacos,即可访问服务, 默认密码是nacos/nacos
三、将商品微服务注册到nacos
1.将要注册到nacos的微服务的pom文件导入nacos依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
2. 在配置类application.properties中添加nacos配置
(1)被远程调用的服务
#指定nacos注册中心的地址 ip:port
spring.cloud.nacos.discovery.server-addr=localhost:8848
#指定服务器的名称springcloud-product是我的服务器名你需要改成自己的
spring.application.name=springcloud-product
(2)使用调用的服务
#指定nacos注册中心的地址 ip:port
spring.cloud.nacos.discovery.server-addr=localhost:8848
#指定是否把该服务注册到注册中心
spring.cloud.nacos.discovery.register-enabled=false
#指定服务器的名称
spring.application.name=springcloud-order
3.启动服务打开nacos查看是否有注册的服务
4.修改自己微服务controller的代码
(1)注入DiscoveryClient
@Autowired
private DiscoveryClient discoveryClient;
(2)修改远程调用的部分功能代码
//根据服务器名称获取对应的所有实例对象
List<ServiceInstance> instances = discoveryClient.getInstances("springcloud-product");
//获取第一个实例对象
ServiceInstance serviceInstance = instances.get(0);
//获取实例对象的http+ip+端口
String path = serviceInstance.getUri().toString();
CommonResult forObject = restTemplate.getForObject(path+"/product/findById/" + pid, CommonResult.class);
5.启动服务,
观察nacos的控制面板中是否有注册上来的订单微服务,然后通过访问消费者服务验证调用是否成功