当前位置:首页 » 存储配置 » net怎么接入nacos配置

net怎么接入nacos配置

发布时间: 2024-04-13 03:25:47

A. 【Nacos专题】Nacos 快速入门

Nacos 英文全称 Dynamic Naming and Configuration Service,它是 Spring Cloud Alibaba 的核心组件之一,致力于微服务架构中的服务注册与发现、配置管理。

Nacos 将注册中心和配置中心整合在一起,提供了两个核心功能,即服务注册与发现和动态配置服务。

Nacos 支持基于 DNS 和 基于 RPC 的服务发现,服务提供者向 Nacos 服务端注册服务后,服务消费者可以从 Nacos 服务端获取注册列表。

提供了一个简洁易用的 UI,方便用户管理所有环境的应用配置和服务配置,消除了配置变更时服务需重新部署的过程。还提供了包括 配置版本跟踪 金丝雀发布 一键回滚配置 以及 客户端配置更新状态跟踪 在内的一系列开箱即用的配置管理特性,大大降低配置变更带来的风险。

Nacos 分为服务端和客户端,服务端用来提供服务发现与注册等功能,客户端就是不同的应用和服务。

在 Nacos 的 Release Notes 可以看到每个版本的相关介绍。当前最新的稳定版本是 1.4.0。

Nacos 服务需要 java 运行环境,因此,在启动服务之前需要确保你的服务器已经有了 Java 运行环境,并且配置好了 JAVA_HOME 。

参数说明:

-m:指定运行模式,standalone 表示单机模式

在 Nacos 配置文件中配置服务器ip,默认的端口号为8848,默认的用户名和密码均为nacos,访问 http://ip:8848/nacos/index.html 便能够成功登Nacos管理后台。

(1) 引入依赖

在 SpringBoot 项目中引入 Nacos 客户端依赖,pom.xml 添加如下内容:

(2) 修改配置

在 application.properties 配置文件中添加 Nacos 的基本配置 (也可以是 application.yml )

1)application.properties

2)application.yml

(3) @EnableDiscoveryClient 注解

在 SpringBoot 的启动类上添加 @EnableDiscoveryClient 注解来开启服务注册。

Nacos Discovery 默认集成了 Netflix Ribbon,服务消费者可以使用 RestTemplate 或 OpenFeign 进行服务的调用。

(1) Nacos 启动时报如下错误

问题原因:通过yum命令安装的普通的openJDK没有javac等工具,而且安装完以后连环境变量都不需要配置,就能使用 java -version 验证。

解决方案:重新安装devel开发版openJDK,开发版的openJDK有javac工具,然后配置java环境变量即可。

(2) Nacos Provider 启动报错

问题原因:没有配置 Nacos 服务端的地址,因此,当 Nacos Provider 启动的时候,无法与注册中心通信

解决方案:在配置文件中配置 Nacos 服务端地址,如下所示:

B. 什么是NacosNacos注册配置中心介绍

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

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

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

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

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

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

先导入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版本,如下:

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

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

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

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

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

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

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

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

权重的初始值是1

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

热点内容
pythonstrptime 发布:2024-11-27 12:34:50 浏览:954
怎么判断组装电脑配置真假 发布:2024-11-27 12:30:18 浏览:379
周鸿祎编程 发布:2024-11-27 12:30:12 浏览:615
索赔的脚本 发布:2024-11-27 12:30:09 浏览:547
什么是淘宝数据库 发布:2024-11-27 12:30:08 浏览:372
联系辅导员重设密码需要什么 发布:2024-11-27 12:19:16 浏览:509
android刷系统 发布:2024-11-27 12:18:40 浏览:914
安卓什么是id密码 发布:2024-11-27 11:52:39 浏览:445
zjs解压 发布:2024-11-27 11:33:10 浏览:158
sql查看用户权限 发布:2024-11-27 11:25:23 浏览:9