大白话剖析服务发现原理
可以用mysql类比,如下图所示:
- 当微服务启动时,向mysql的registry表插入一条数据
- 当消费者需要查找服务提供者时,需要到表里去查询数据,得到的数据就是可用的服务提供者
- 但是如果每次都要去查询,服务发现组件压力就会很大,并且有可能宕机,因此需要定时去查询,然后将结果保存到服务本地的缓存中
- 服务需要每隔一段时间向注册中心发起一次心跳,注册中心更新last_heartbeat字段
-
当服务超过一段时间没有向注册中心发送心跳连接时,将status置为DOWN,即该服务被移除
服务发现.png
什么是Nacos?
服务发现组件和配置服务器
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
安装Nacos(Docker)
GitHub-nacos-group/nacos-docker
- git clone --depth 1 https://github.com/nacos-group/nacos-docker.git
- cd nacos-docker
- docker-compose -f example/standalone-derby.yaml up
- 启动成功,端口号为8848
应用注册到Nacos
- 添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
- 不需要添加注解
- 增加配置
spring:
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
namespace:用于环境隔离
cluster-name: 同一集群优先调用
网友评论