第02章-Nacos服务发现
# 2.1 Nacos搭建及简介
启动Nacos Server:https://nacos.io/zh-cn/docs/quick-start.html
startup.cmd -m standalone
1
微服务全景架构图
Nacos服务注册与发现模型
# 2.2 Nacos服务注册于发现
加入依赖
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency>
1
2
3
4加注解(非必须)
@SpringBootApplication @EnableDiscoveryClient // 非必须,早期需要 public class UserCenterApplication {}
1
2
3写配置
spring: cloud: nacos: #指定nacos server地址 server-addr: localhost:8848 discovery: #指定命名空间、集群 namespace: 01511f2b-269d-442f-8cde-91a6220ce63d cluster-name: Shanghai #指定元数据 metadata: author: lucifer date: 2021-01-27 18:46 application: # spring.application.name对应注册到nacos上的服务名 name: content-center
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
测试获取服务列表
public class ShareService {
@Autowired
private DiscoveryClient discoveryClient;
public ShareDTO findById(Integer id) {
// 拿到所有用户中心实例信息
List<ServiceInstance> instances = discoveryClient.getInstances("user-center");
List<String> targetUrls = instances.stream()
.map(instance -> instance.getUri().toString() + "/users/{id}")
.collect(Collectors.toList());
// 可以使用RestTemplate等发起请求了
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
# 2.3 服务发现的领域模型
- Namespace:实现隔离,默认public,服务不能跨Namespace调用
- Group:不同服务可以分到一个组,默认DEFAULT-GROUP
- Service:微服务
- Cluster:对指定微服务的一个虚拟划分,默认DEFAULT
- Instance:微服务实例
# 2.4 Nacos服务元数据
服务元数据是指包括服务端点(endpoints)、服务标签、服务版本号、服务实例权重、路由规则、安全策略等描述服务的数据
作用:
- 提供描述信息
- 让微服务调用更加灵活,如版本控制
设置方式:可以在控制台设置,或者通过配置文件设置
编辑 (opens new window)
上次更新: 2023/06/04, 12:34:19