Nacos 学习笔记
1. 背景
最近的一个趋势是Eureca用的少了,都在推荐使用Nacos ,本节我们学习Nacos。
2.知识
一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
官方主页: https://nacos.io/
Nacos 是什么? Nacos 是 注册中心(Service Registry)和 配置中心(Config Center) ,也可以仅作为注册中心使用。
三个关键特性:
(1) 动态服务发现
- 服务发现,服务提供者使用 原生SDK、或 其他方式 注册 Service 后,服务消费者可以使用 HTTP API 查找和发现服务。
- 服务健康监测,Nacos 提供对服务的实时的健康检查,阻止向不健康的主机或服务实例发送请求。
(2) 配置管理
Nacos 的动态配置服务可以让您以 中心化
的方式管理配置文件,将配置文件上传到Nacos后服务提供者在启动后自动获得配置文件,使得配置更方便,统一。
(3) 服务管理 Nacos 提供了web 控制台,可等录入 web管理页操作服务的下线等。
一些概念知识
整体结构是:命名空间下有多个分组,分组下有多个服务。
结构
命名空间 不同的命名空间下,可以存在相同的 Group 或 Data ID 的配置。场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。
默认有个 public 空间,我们还可以建立 dev , test 等空间。
配置分组 配置文件可以用一个名字来分组,如果未填写配置分组的名称,则配置分组的名称默认采用 DEFAULT_GROUP 。一般就 DEFAULT_GROUP 就够了。
健康检查 Nocos 以指定方式检查服务下挂载的实例 (Instance) 的健康度,从而确认该实例 是否能提供服务。
健康保护阈值是 为了防止因过多实例不健康导致流量全部流向健康实例,造成流量压力把健康实例 压垮并形成雪崩效应,当域名健康实例数 占总服务实例数 的比例小于该值时,无论实例是否健康,都会将这个实例返回给客户端。
3. 安装和启动
3.1 下载
前往官网下载 https://github.com/alibaba/nacos/releases
3.2 启动
单机模式运行,在 Linux/Unix/Mac 启动命令:
sh startup.sh -m standalone
在 Linux/Unix/Mac下 .关闭服务器
sh shutdown.sh
3.3 访问 web 地址
打开网址 Http://localhost:8848/nacos 默认账户和密码都是 nacos
4. 和 Springboot 集成
4.1 集成和使用:服务发现
(1)添加依赖
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-discovery-spring-boot-starter</artifactId>
<version>${latest.version}</version>
</dependency>
(2) 修改配置文件 application.properties 中配置 Nacos server 的地址:
nacos.discovery.server-addr=127.0.0.1:8848
4.2 集成和使用:动态配置
上传 配置文件
将你的配置文件 application.properties 通过web 上传到nacos。文件名格式一般是:{prefix}-{spring.profiles.active}.
- ${prefix} 是你的 应用的名字
- ${spring.profiles.active} 是活动的 profile 的名字,比如 dev,test
- ${file-extension} 是扩展名,比如 yml 或者 properties
添加依赖
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-config-spring-boot-starter</artifactId>
<version>${latest.version}</version>
</dependency>
修改配置文件 application.properties
在 application.properties 中配置 Nacos server 的地址:
nacos.config.server-addr=127.0.0.1:8848
5.参考:
https://github.com/alibaba/nacos https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html
相关文章
- 【技术种草】cdn+轻量服务器+hugo=让博客“云原生”一下
- CLB运维&运营最佳实践 ---访问日志大洞察
- vnc方式登陆服务器
- 轻松学排序算法:眼睛直观感受几种常用排序算法
- 十二个经典的大数据项目
- 为什么使用 CDN 内容分发网络?
- 大数据——大数据默认端口号列表
- Weld 1.1.5.Final,JSR-299 的框架
- JavaFX 2012:彻底开源
- 提升as3程序性能的十大要点
- 通过凸面几何学进行独立于边际的在线多类学习
- 利用行动影响的规律性和部分已知的模型进行离线强化学习
- ModelLight:基于模型的交通信号控制的元强化学习
- 浅谈Visual Source Safe项目分支
- 基于先验知识的递归卡尔曼滤波的代理人联合状态和输入估计
- 结合网络结构和非线性恢复来提高声誉评估的性能
- 最佳实践丨云开发CloudBase多环境管理实践
- TimeVAE:用于生成多变量时间序列的变异自动编码器
- 具有线性阈值激活的神经网络:结构和算法
- 内网渗透之横向移动 -- 从域外向域内进行密码喷洒攻击