Alibaba微服务组件Nacos注册中心

Posted mry6

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Alibaba微服务组件Nacos注册中心相关的知识,希望对你有一定的参考价值。

Alibaba微服务组件Nacos注册中心

什么是Nacos

官方概念:一个易于构建云原生应用的动态服务发现(Nacos Discovery)、服务配置(Nacos Config)和服务管理平台。

Nacos的关键特性包括:
1》服务发现和服务健康监测
2》动态配置服务
3》动态DNS服务
4》服务及其元数据管理

Nacos注册中心

管理所有微服务,解决微服务之间调用关系错综复杂、难以维护的问题;

1.注册中心演变及其设计思想



2.Nacos注册中心架构

3.核心功能
Nacos Discovery
服务注册:Nacos Client会通过发送REST请求的方式向Nacos Server注册自己的服务, 提供自身的元数据,比如ip地址、端口等信息。Nacos Server接收到注册请求后,就会把这些元数据信息存储在一个双层的内存Map中。
服务心跳:在服务注册后,Nacos Client会维护一个定时心跳来持续通知Nacos Server,说明服务一直处于可用状态,防止被剔除。默认5s发送一次心跳。
服务同步:Nacos Server集群之间会互相同步服务实例,用来保证服务信息的一致性。 leader raft
服务发现:服务消费者(Nacos Client)在调用服务提供者的服务时,会发送一个REST请求给Nacos Server,获取上面注册的服务清单,并且缓存在Nacos Client本地,同时会在Nacos Client本地开启一个定时任务定时拉取服务端最新的注册表信息更新到本地缓存
服务健康检查:Nacos Server会开启一个定时任务用来检查注册服务实例的健康情况,对于超过15s没有收到客户端心跳的实例会将它的healthy属性设置为false(客户端服务发现时不会发现),如果某个实例超过30秒没有收到心跳,直接剔除该实例(被剔除的实例如果恢复发送心跳则会重新注册)

主流的注册中心
CAP协议:C 一致性 、 A 可用性 、 P 分区容错性

注册中心配置项详解

更多配置:https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-discovery

配置项Key默认值说明
服务端地址spring.cloud.nacos.discovery.server-addrNacos Server 启动监听的ip地址和端口
服务名spring.cloud.nacos.discovery.service${spring.application.name}给当前的服务命名
服务分组spring.cloud.nacos.discovery.groupDEFAULT_GROUP设置服务所处的分组
权重spring.cloud.nacos.discovery.weight1取值范围 1 到 100,数值越大,权重越大。通常要结合权重的负载均衡策略,权重越高分配的流量就越大
网卡名spring.cloud.nacos.discovery.network-interface当IP未配置时,注册的IP为此网卡所对应的IP地址,如果此项也未配置,则默认取第一块网卡的地址
注册的IP地址spring.cloud.nacos.discovery.ip优先级最高
注册的端口spring.cloud.nacos.discovery.port-1默认情况下不用配置,会自动探测
命名空间spring.cloud.nacos.discovery.namespace常用场景之一是不同环境的注册的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。
AccessKeyspring.cloud.nacos.discovery.access-key当要上阿里云时,阿里云上面的一个云账号名
SecretKeyspring.cloud.nacos.discovery.secret-key当要上阿里云时,阿里云上面的一个云账号密码
Metadataspring.cloud.nacos.discovery.metadata使用Map格式配置,用户可以根据自己的需要自定义一些和服务相关的元数据信息
日志文件名spring.cloud.nacos.discovery.log-name
集群spring.cloud.nacos.discovery.cluster-nameDEFAULT配置成Nacos集群名称
接入点spring.cloud.nacos.discovery.enpointUTF-8地域的某个服务的入口域名,通过此域名可以动态地拿到服务端地址
是否集成Ribbonribbon.nacos.enabledtrue一般都设置成true即可
是否开启Nacos Watchspring.cloud.nacos.discovery.watch.enabledtrue可以设置成false来关闭 watch

以上是关于Alibaba微服务组件Nacos注册中心的主要内容,如果未能解决你的问题,请参考以下文章

SpringCloud Alibaba实战(7:nacos注册中心管理微服务)

SpringCloud Alibaba实战(7:nacos注册中心管理微服务)

SpringCloud Alibaba实战(7:nacos注册中心管理微服务)

Spring Cloud Alibaba微服务介绍 及 Nacos注册中心实战

Spring Cloud Alibaba 微服务2,注册中心演变 + Nacos注册中心与配置中心

Springcloud 整合Alibaba的Nacos实现服务注册和配置中心