Nacos 服务发现
一、什么是Nacos
-
官方文档:https://nacos.io/zh-cn/docs/quick-start.html
-
Nacos是一个服务发现组件同时也是一个配置服务器
-
解决了两个问题:
- 服务A怎样找到服务B
- 管理微服务的配置
二、架构演进
- 加入nacos 系统架构就会演变成下种状态
三、搭建Nacos Server
下载Nacos
- 下载地址:https://github.com/alibaba/nacos/releases
- 打开项目springcloud alibaba依赖spring-cloud-alibaba-dependencies文件搜索Nacos,查看Nacos Client版本,在下载地址中查找对应的版本下载。
搭建Nacos Server
- 参考文档:https://nacos.io/zh-cn/docs/quick-start.html
将应用注册到Nacos
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
spring:
cloud:
nacos:
discovery:
# 指定 nacos server的地址
server-addr: localhost:8848
# 命名空间
namespace: 0f1fe6bf-c63b-41d0-8dab-3243e825ba61
# 集群名称
cluster-name: NJ
application:
#服务名称,尽量用中划线 -
name: user-center
DiscoveryClient
先声明对象
@Autowired
private DiscoveryClient discoveryClient;
在方法中使用
//查询id对应服务的所有实例的信息
List<ServiceInstance> instances = this.discoveryClient.getInstances("user-center");
//查询当前服务发现组件注册了哪些微服务
List<String> services = this.discoveryClient.getServices();
四、服务发现的领域模型
-
Namespace:实现隔离,默认为public
-
Group:不同服务可以分到一个组,默认DEFAULT_GROUP
-
Service:微服务
-
Cluster:集群,对指定微服务的一个虚拟划分
-
Instance:微服务实例
五、元数据
Nacos数据(如配置和服务)描述信息,如服务版本、权重、容灾策略、负载均衡策略、鉴权配置、各种自定义标签 (label),从作用范围来看,分为**服务级别的元信息、集群的元信息及实例的元信息**
。