1. 服务注册中心
Nacos作为服务注册中心,必须要实现两点:
- 服务地址统一管理
- 服务上下线动态感知
2. 服务注册
2.1 导包
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
2.2 配置
#服务名(该服务名,会在nacos上显示)
spring.application.name=服务名称
# nacos服务地址
spring.cloud.nacos.discovery.server-addr=ip:端口
2.3 启动类增加注解 @EnableDiscoveryClient
3. 服务发现
本地缓存需要请求服务器的地址列表
3.1 本地缓存时效性问题解决
1.每10s发送一次pull拉取请求,获取服务最新的地址列表。
2.由于服务端和服务提供者建立心跳机制,一旦服务示例出现故障,服务端察觉出后,会发送一个push消息给服务消费者(基于UDP协议实现的,UDP无需建立链接,就可以发送数据。不像TCP会经过三次握手,四次挥手来建立全双工的连接)