一、什么是Nacos

英文全称Dynamic Naming and Configuration Service,Na为naming/nameServer即注册中心,co为configuration即注册中心,service是指该注册/配置中心都是以服务为核心。服务在nacos是一等公民

二、Nacos原理


                                             nacos简单介绍


Nacos注册中心分为server与client,server采用Java编写,为client提供注册发现服务与配置服务。而client可以用多语言实现,client与微服务嵌套在一起,nacos提供sdk和openApi,如果没有sdk也可以根据openApi手动写服务注册与发现和配置拉取的逻辑


                                             nacosnacos服务领域模型


Nacos服务领域模型主要分为命名空间、集群、服务。在下图的分级存储模型可以看到,在服务级别,保存了健康检查开关、元数据、路由机制、保护阈值等设置,而集群保存了健康检查模式、元数据、同步机制等数据,实例保存了该实例的ip、端口、权重、健康检查状态、下线状态、元数据、响应时间。这些数据的作用会在第三章讲到

2.1注册中心原理

nacos服务注册原理


服务注册方法:以Java nacos client v1.0.1 为例子,服务注册的策略的是每5秒向nacos server发送一次心跳,心跳带上了服务名,服务ip,服务端口等信息。同时 nacos server也会向client 主动发起健康检查,支持tcp/http检查。如果15秒内无心跳且健康检查失败则认为实例不健康,如果30秒内健康检查失败则剔除实例。

2.2 配置中心原理

三、 Nacos使用方法

3.1创建命名空间

不同的命名空间逻辑上是隔离的,不特殊设置的情况下,服务不会跨命名空间请求,命名空间主要的作用是区分服务使用的范围,比如开发、测试、生产、灰度可以分别设置四个命名空间来互相隔离。

nacos新建命名空间


如图所示,在控制台的 按钮可以创建新的命名空间,命名空间创建后,会在列表显示,这个ID后面会用在服务的配置文件中

3.2在服务上配置注册、配置中心

以springcloud为例,首先用maven导入nacos clinet的依赖:

     <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId><version>0.2.1.RELEASE</version><exclusions><exclusion><groupId>com.alibaba.nacos</groupId><artifactId>nacos-client</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>0.2.1.RELEASE</version><exclusions><exclusion><groupId>com.alibaba.nacos</groupId><artifactId>nacos-client</artifactId></exclusion></exclusions></dependency>

先导入springcloud的alibaba-nacos-config和alibaba-nacos-discovery两个依赖,这两个依赖是用于nacos clinet与cloud结合的工具,0.2.x对应springboot 2.x.x ,0.1.x对应springboot 1.x.x。这两个组件可以和各种版本的nacos-client结合。把其中的nacos-clinet依赖给排除,引入想要引入的nacosclinet版本,如下:

   <!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client --><dependency><groupId>com.alibaba.nacos</groupId><artifactId>nacos-client</artifactId><version>1.0.1</version></dependency>

在bootstrap.properties上添加配置中心的配置

spring.cloud.nacos.config.server-addr=nacos.e.189.cn:80
spring.cloud.nacos.config.namespace=命名空间id

在application-xxx.properties新增如下配置

spring.cloud.nacos.discovery.server-addr=nacos.e.189.cn:80
spring.cloud.nacos.discovery.namespace=命名空间id

如果springboot启动类没有@EnableDiscover注解则加上
完成如上更改,即可使用Nacos注册/配置服务

3.3服务间使用feign调用

演示:
使用Feign、Ribbon均可,在这不做过多介绍

3.4通过配置更改动态刷新参数

普通application参数在配置中心直接配置皆可,如果需要可以动态刷新的配置,需要在相应类上加上@RefreshScope注解,示例如下,当在nacos配置中心更改配置后,方法getId的值也会刷新。

@RefreshScope
public class IdEntity {@Value("${id}")private int id;public int getId(){return this.id;}
}

配置中心参数修改/设置
如下两张图:在nacos控制台的配置管理-配置列表中顶部选择相应的命名空间,点击列表右上角的加号新增配置,Data ID 为 项目名-{spring.profiles.active}.properties,Group如果在bootstrap.properties中不指定则填默认的DEFAULT_GROUP,描述写该配置的描述,配置内容填写Properties格式或者Yaml格式。

nacosnacos控制台-配置管理


nacosnacos控制台-新建配置


3.5 nacos其他功能使用与介绍

控制台手动上下线实例

在控制台的服务管理-服务列表选择一个服务点击详情,在下方的集群列表可以看到有上线/下线按钮,点击即可以对该实例执行上线/下线操作,下线后的实例不会被请求

nacos控制台手动上下线


配置实例权重

可以通过手动配置权重来控制流量,当一个集群内两个实例,权重越高,到达该实例的请求比例越多。

权重的初始值是1

配置保护阈值

保护阈值的范围是0~1
服务的健康比例=服务的健康实例/总实例个数
当服务健康比例<=保护阈值时候,无论实例健不健康都会返回给调用方
当服务健康比例>保护阈值的时候,只会返回健康实例给调用方
服务管理-服务列表选择一个服务点击详情可以配置

什么是Nacos?Nacos注册配置中心介绍相关推荐

  1. Nacos配置中心介绍

    配置中心介绍 1.Spring Cloud Config Spring Cloud Config 为分布式系统的外部配置提供了服务端和客户端的支持方案.在配置的服务端您可以在所有环境中为应用程序管理外 ...

  2. Apollo配置中心介绍,多环境,分布式等

    参考: Apollo Apollo 玩转apollo配置中心--通过源码进行多env环境搭建 - swing·wang - 博客园 一.Apollo(配置中心) Apollo(阿波罗)是携程框架部门研 ...

  3. 第4关 注册配置中心实现

    复杂的不是代码,而是问题本身.--ta说 第4关 注册配置中心实现 4.1 注册中心的基本介绍 4.2 注册中心的安装 4.3 分类模块目录结构生成 4.4 编写对外暴露的服务 4.5 数据库进行交互 ...

  4. nacos 单机部署_nacos简介以及作为注册/配置中心与Eureka、apollo的选型比较

    一.Nacos简介 Nacos是以服务为主要服务对象的中间件,Nacos支持所有主流的服务发现.配置和管理. Nacos主要提供以下四大功能: 服务发现与服务健康检查 Nacos使服务更容易注册自己并 ...

  5. 【Gulimall】Spring Cloud:spring-cloud-gateway、spring-cloud-openfeign,Alibaba的注册+配置中心Nacos

    文章目录 1 Nacos 1.0安装 1.1注册中心 1.2配置中心 2 spring-cloud-openfeign 3 spring-cloud-gateway Spring Cloud官方 li ...

  6. 华为云CSE关键特性,支持托管Nacos注册配置中心

    什么是Nacos Nacos是 Dynamic Naming and Configuration Service的首字母简称,相较之下,它更易于构建云原生应用的动态服务发现.配置管理和服务管理平台. ...

  7. nacos初探--作为配置中心

    什么是nacos Nacos 支持基于 DNS 和基于 RPC 的服务发现(可以作为springcloud的注册中心).动态配置服务(可以做配置中心).动态 DNS 服务. 官方介绍是这样的: Nac ...

  8. nacos如何做配置中心?自带自动刷新配置功能?这一篇文章让你明明白白!

    目录 nacos做配置中心 pom加上: bootstrap.yml(优先级高于application.yml) application.yml 主启动类 controller: 配置yml和naco ...

  9. apollo源码分析 感知_Kitty中的动态线程池支持Nacos,Apollo多配置中心了

    目录 回顾昨日 nacos 集成 Spring Cloud Alibaba 方式 Nacos Spring Boot 方式 Apollo 集成 自研配置中心对接 无配置中心对接 实现源码分析 兼容 A ...

最新文章

  1. [翻译]StructureMap 指南 – .NET中的依赖注入和控制反转
  2. C++ 虚拟析构函数
  3. 嵌入式linux实时化技术,嵌入式Linux实时化技术
  4. github生成燃尽图
  5. 在存储过程中执行别的存储过程并获取其返回的结果集
  6. HTML基础-李南江
  7. ESD笔记(二)_ESD测试
  8. java实现excel 行列转置,行列转换。附完整代码
  9. #windowsxpsp3系统MS12-020漏洞测试
  10. echarts的xAxis的axisLabel的使用
  11. CVPR2018 ——(GAN)延时摄影视频的生成
  12. BUUCTF之Ping Ping Ping
  13. visio文本框输入公式
  14. 蔚来智驾功能大更新:与其叫NOP+,不如叫NAD-
  15. java poi 操作Excel 删除行内容和直接删除行
  16. Markdown KaTex 积分符号
  17. Reactor3 Flux.create与Flux.push正确打开方式
  18. 华为接班人准备好了吗? (转载)
  19. android系统锁屏锁怎么解决方法,忘了图案锁?这是你如何解锁Android模式锁定屏幕!...
  20. Redis实现点赞与关注

热门文章

  1. [转载] java中50个关键字以及各自用法大全
  2. ctype函数_PHP ctype_xdigit()函数与示例
  3. currency abap_Java Currency getDefaultFractionDigits()方法及示例
  4. 云盾idaas登陆_移动端扫码登录IDaaS平台
  5. anaconda base环境_anaconda中安装packages:pip还是conda install?
  6. python if语句 for语句 while语句
  7. css复选框样式_使用CSS样式复选框
  8. 啪啪打脸!领导说:try-catch要放在循环体外!
  9. Xamarin开发笔记—百度在线语音合成
  10. MITK医学Python开发入门详细版