电子书下载网站建设,网站建设经理岗位职责,做海外网站,wordpress最简单主题制作一、什么是Nacos
英文全称Dynamic Naming and Configuration Service#xff0c;Na为naming/nameServer即注册中心,co为configuration即注册中心#xff0c;service是指该注册/配置中心都是以服务为核心。服务在nacos是一等公民
二、Nacos原理 nacos简单介绍 Nacos注册中心…一、什么是Nacos
英文全称Dynamic Naming and Configuration ServiceNa为naming/nameServer即注册中心,co为configuration即注册中心service是指该注册/配置中心都是以服务为核心。服务在nacos是一等公民
二、Nacos原理 nacos简单介绍 Nacos注册中心分为server与clientserver采用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的依赖 dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactIdversion0.2.1.RELEASE/versionexclusionsexclusiongroupIdcom.alibaba.nacos/groupIdartifactIdnacos-client/artifactId/exclusion/exclusions/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactIdversion0.2.1.RELEASE/versionexclusionsexclusiongroupIdcom.alibaba.nacos/groupIdartifactIdnacos-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 --dependencygroupIdcom.alibaba.nacos/groupIdartifactIdnacos-client/artifactIdversion1.0.1/version/dependency在bootstrap.properties上添加配置中心的配置
spring.cloud.nacos.config.server-addrnacos.e.189.cn:80
spring.cloud.nacos.config.namespace命名空间id在application-xxx.properties新增如下配置
spring.cloud.nacos.discovery.server-addrnacos.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 服务的健康比例服务的健康实例/总实例个数 当服务健康比例保护阈值时候无论实例健不健康都会返回给调用方 当服务健康比例保护阈值的时候只会返回健康实例给调用方 在服务管理-服务列表选择一个服务点击详情可以配置