Nacos注册中心和服务发现的原理和配置中心的原理、集群架构图和后端yml中配置、与Zookeeper的区别

借鉴:https://blog.csdn.net/weixin_44994494/article/details/127280766
https://www.zhihu.com/question/485925746/answer/2692080796

Nacos作为微服务架构中的注册中心,其他服务的服务信息(ip,端口等信息)可以注册到Nacos服务端(其实也是一个Spingboot应用)。Nacos又为客户端提供了服务发现的功能。客户端会开启一个定时任务,定时向服务端获取最新的服务列表,加载到客户端本地缓存。客户端同时又开启一个定时心跳发送的任务,用于告知服务端,当前服务的健康状态。服务端启动的时候同样也会开启一个健康检查的定时任务,扫描服务列表,将长时间未与服务端发送心跳的服务的健康状态改为false,达到某个时间,会踢出该服务。
Nacos好处就是服务不需要记录其他服务的ip信息,通过Nacos可以实时获取其他服务列表。仅仅只需从本地缓存中根据服务名找到服务列表,利用负载均衡算法从列表中拉取一个ip进行调用(比如Ribbon)

Nacos其实就是一个web springboot应用,端口一般是8848,需要配置数据库Mysql,HTTP形式的,客户端,消费端调用它的接口(阿里巴巴开源项目)

一:注册中心

1.其他服务的服务信息(ip,端口等信息)可以注册到Nacos服务端(其实也是一个Spingboot应用)
2.客户端同时又开启一个定时心跳发送的任务,用于告知服务端,当前服务的健康状态。
3.服务端同样也会开启一个健康检查的定时任务,扫描服务列表,将长时间未与服务端发送心跳的服务的健康状态改为false。

二:服务发现

1.客户端会开启一个定时任务,定时向服务端获取最新的服务列表,加载到客户端本地缓存。

三:配置中心

Nacos服务端操作页面:增加配置,然后Nacos服务端做持久化配置
Nacos客户端启动后:长轮询获取最新的配置(主动从服务端拉)
Nacos客户端获取到的配置有变化时:客户端无需重启,Nacos的config依赖,自动刷新,实现热更新。
在这里插入图片描述

四:集群架构图和后端yml中配置

Nginx 集群搭建(安装keepalived,设置主从),用来做负载均衡到Nacos集群
在这里插入图片描述

spring:
  application:
    name: userService #可以读到userServer.yaml环境
  profiles:
    active: dev #环境   在加上dev即可以读到userServer-dev.yaml环境
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848   #nginx的地址:会路由到nacos地址[Nginx 集群搭建(安装keepalived,设置主从,此处id换成主nginx的地址)]
      config:
        server-addr: localhost:8848   #nginx的地址:会路由到nacos地址 
        file-extension: yaml  #文件后缀名
#        namespace: d16c25e6-07bc-4c97-a619-b876e78e3b1a #命名空间,填命名空间的ID  dev环境

五:与Zookeeper的区别

Nacos:数据存储在数据库Mysql、客户端会缓存服务列表
Zookeeper:数据以树型结构存储在内存和磁盘中、原生的Zookeeper不缓存服务列表、支持分布式锁

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值