Nacos1.x作为注册中心的原理
1、使用Http发送注册
2、查询服务提供方列表
3、定时拉取(每10秒)
4、检测到服务提供者异常,基于UDP协议推送更新
5、定时心跳(5秒),检测服务状态
6、定时心跳任务检查
7、集群数据同步任务使用Distro
Nacos服务领域模型有哪些
Nacos服务注册中心与发现的领域模型的最佳实践。
Nacos中的Distro协议
Nacos 每个节点自己负责部分的写请求。
每个节点会把自己负责的新增数据同步给其他节点。
每个节点定时发送自己负责数据的校验值到其他节点来保持数据一致性。
每个节点独立处理读请求,及时从本地发出响应。
新加入的 Distro 节点会进行全量数据拉取。(具体操作是轮询所有的 Distro节点,通过向其他的机器发送请求拉取全量数据。)
Nacos1.x配置中心长轮询机制
客户端会轮询向服务端发出一个长连接请求,这个长连接最多30s就会超时,服务端收到客户端的请求会先判断当前是否有配置更新,有则立即返回,如果没有服务端会将这个请求拿住“hold”29.5s
加入队列,最后0.5s再检测配置文件无论有没有更新都进行正常返回,但等待的29.5s期间有配置更新可以提前结束并返回。
Nacos配置中心配置优先级
#作用:顺序
#${application.name}-${profile}.${file- extension} nacos-config-prod.yaml
#${application.name}.${file-extension} nacos-config.yaml
#${application.name} nacos-config
#extensionConfigs 扩展配置文件
#sharedConfigs 多个微服务公共配置 redis
spring.application.name=nacos-config
server.port=8081
#nacos地址
spring.cloud.nacos.config.server-addr=localhost:8848
#1、只有上面的配置的时候他默认加载文件为:${application.name} nacos-config
#2、指定文件后缀名称
#加载文件为:${application.name}.${file-extension}
#nacos-config.yaml
#spring.cloud.nacos.config.file-extension=yaml
##3、profile: 指定环境 文件名:${application.name}-${profile}.${file-extension}
##nacos-config-prod.yaml
#spring.profiles.active=prod
#4、nacos自己提供的环境隔离 ,这里是开发环境下的
#spring.cloud.nacos.config.namespace=ff02931a-6fdb-4681-ac37-2f6d9a0596f8
#5、 自定义 group 配置,这里也可以设置为数据库配置组,中间件配置组,但是一般不用,
# 配置中心淡化了组的概念,使用默认值DEFAULT_GROUP
#spring.cloud.nacos.config.group=DEFAULT_GROUP
#
#6、自定义Data Id的配置 共享配置(sharedConfigs)
#spring.cloud.nacos.config.shared-configs[0].data-id= common.yaml
##可以不配置,使用默认
#spring.cloud.nacos.config.shared-configs[0].group=DEFAULT_GROUP
## 这里需要设置为true,动态可以刷新,默认为false
#spring.cloud.nacos.config.shared-configs[0].refresh=true
# 7、扩展配置(extensionConfigs)
# 支持一个应用有多个DataId配置,mybatis.yaml datasource.yaml
#spring.cloud.nacos.config.extension-configs[0].data-id=datasource.yaml
#spring.cloud.nacos.config.extension-configs[0].group=DEFAULT_GROUP
#spring.cloud.nacos.config.extension-configs[0].refresh=true
#作用:顺序
#${application.name}-${profile}.${file- extension} msb-edu-prod.yaml
#${application.name}.${file-extension} nacos-config.yaml
#${application.name} nacos-config
#extensionConfigs 扩展配置文件
#sharedConfigs 多个微服务公共配置 redis
Nacos2.x客户端探活机制
Nacos服务端会启动一个定时任务,每3秒执行一次,查看所有连接是否超过20s没有通信,如果超
过20秒没有通信,服务端就会给客户端发送一个请求,进行探活,如果能正常返回就表示这个服务为正常服务,如果不能正常返回就将其连接删除。
知识来源:马士兵教育