Nacos的应用

简介: Nacos的应用

什么是nacos?


Nacos是一个开源的动态服务发现,配置管理和服务治理平台。主要用于构建原生应用和微服务架构。它是阿里巴巴开源的项目,整合了配置管理,服务管理,服务发现的功能,核心价值在于帮助用户在云平台


Nacos的主要功能包括服务发现与注册,动态配置管理,服务健康监测,流量管理和路由。


Nacos主要的特性如下


  • 服务发现和服务健康检查

支持基于DNS和基于RPC的服务发现需求,并支持服务端和客户端的健康检查,确保服务可用性


  • 动态配置服务

动态配置和管理微服务应用的各种配置信息,支持热加载当你配置有更新时,可以动态地推送到应用的实例


  • 动态DNS服务

管理微服务架构中的DNS服务,支持权重路由,从而使得DNS服务更加灵活和可靠。


  • 服务及元数据管理

提供界面和API,供开发人员和运维人员管理服务信息和元数据


  • 支持多种配置数据格式

如 properties、yaml、json、xml 等。


Nacos如何实现服务注册的?


1,引入依赖


在SpringBoot 应用的pom.xml  或build.gradle 文件中添加Nacos作为服务发现和配置中心的依赖项

  • Maven依赖示例:
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
  • Gradle依赖示例
implementation 'com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery'

2,配置Nacos Server地址


在应用的配置文件中配置Nacos Server的地址,配置文件一般是(application.properties 或 application.yml)


server-addr 是Nacos服务器的地址和端口号,而spring.appliaction.name是注册到Nacos时将使用的服务名称

spring.application.name=my-service
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

3,启用服务发现

在SpringBoot应用启动类上添加@EnableDiscoveryClient 注解来激活服务发现功能

@SpringBootApplication
@EnableDiscoveryClient
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}

随后运行这个SpringBoot 应用,它将自动注册到Nacos Server,并且Nacos会获取到服务的一些基本信息如服务名,IP地址,端口号等


可以通过访问Nacos控制台来检查服务是否成功注册,默认情况下,控制台可以通过Ip:8848/nacos访问,登录进入后,你应该可以在服务列表中看到刚刚启动的服务信息


Nacos客户端会定期发送心跳到Nacos Server来更新服务实例的状态,可以在配置文件中对心跳间隔/超时时间进行配置。


Nacos在集群模式下如何保证高可用?


  • 集群部署

Nacos支持集群模式部署,在生产环境中建议至少三个节点以保障高可用性,这种部署方式可以使单个节点出故障时整个系统依然可用。


  • 数据库复制

在集群环境中,Nacos使用类似于Raft等一致性协议来复制和同步节点之间的数据,这确保了即使在多节点环境下,每个节点都具有最新和一致的配置数据和服务信息


  • 选举机制

如果主节点出现故障,Nacos 集群会自动进行新的领导者选举来保证服务的连续可用性。


  • 心跳检测

Nacos 持续监测服务实例的心跳,从而对服务进行健康检查。服务实例需要定时发送心跳来保持其在注册中心的健康状态


  • 持久化存储

Nacos 支持将配置数据和服务信息持久化存储到磁盘上,这可以防止因节点重启丢失数据。


  • 负载均衡

Nacos客户端会缓存服务注册列表,并且基于负载均衡算法访问服务节点,减轻单个节点的压力


备份和恢复


  • 多数据中心

部署在多数据中心可以进一步提高系统的可用性,并在一个地理位置的整体故障中提供保护。


  • 监控和预警

设置监控系统来跟踪每个 Nacos 节点的状态,以及提前预警系统故障。


目录
相关文章
|
27天前
|
弹性计算 人工智能 架构师
阿里云携手Altair共拓云上工业仿真新机遇
2024年9月12日,「2024 Altair 技术大会杭州站」成功召开,阿里云弹性计算产品运营与生态负责人何川,与Altair中国技术总监赵阳在会上联合发布了最新的“云上CAE一体机”。
阿里云携手Altair共拓云上工业仿真新机遇
|
3天前
|
人工智能 Rust Java
10月更文挑战赛火热启动,坚持热爱坚持创作!
开发者社区10月更文挑战,寻找热爱技术内容创作的你,欢迎来创作!
362 14
|
19天前
|
存储 关系型数据库 分布式数据库
GraphRAG:基于PolarDB+通义千问+LangChain的知识图谱+大模型最佳实践
本文介绍了如何使用PolarDB、通义千问和LangChain搭建GraphRAG系统,结合知识图谱和向量检索提升问答质量。通过实例展示了单独使用向量检索和图检索的局限性,并通过图+向量联合搜索增强了问答准确性。PolarDB支持AGE图引擎和pgvector插件,实现图数据和向量数据的统一存储与检索,提升了RAG系统的性能和效果。
|
6天前
|
JSON 自然语言处理 数据管理
阿里云百炼产品月刊【2024年9月】
阿里云百炼产品月刊【2024年9月】,涵盖本月产品和功能发布、活动,应用实践等内容,帮助您快速了解阿里云百炼产品的最新动态。
阿里云百炼产品月刊【2024年9月】
|
21天前
|
人工智能 IDE 程序员
期盼已久!通义灵码 AI 程序员开启邀测,全流程开发仅用几分钟
在云栖大会上,阿里云云原生应用平台负责人丁宇宣布,「通义灵码」完成全面升级,并正式发布 AI 程序员。
|
23天前
|
机器学习/深度学习 算法 大数据
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
2024“华为杯”数学建模竞赛,对ABCDEF每个题进行详细的分析,涵盖风电场功率优化、WLAN网络吞吐量、磁性元件损耗建模、地理环境问题、高速公路应急车道启用和X射线脉冲星建模等多领域问题,解析了问题类型、专业和技能的需要。
2592 22
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
|
5天前
|
存储 人工智能 搜索推荐
数据治理,是时候打破刻板印象了
瓴羊智能数据建设与治理产品Datapin全面升级,可演进扩展的数据架构体系为企业数据治理预留发展空间,推出敏捷版用以解决企业数据量不大但需构建数据的场景问题,基于大模型打造的DataAgent更是为企业用好数据资产提供了便利。
181 2
|
3天前
|
编译器 C#
C#多态概述:通过继承实现的不同对象调用相同的方法,表现出不同的行为
C#多态概述:通过继承实现的不同对象调用相同的方法,表现出不同的行为
105 65
|
6天前
|
Linux 虚拟化 开发者
一键将CentOs的yum源更换为国内阿里yum源
一键将CentOs的yum源更换为国内阿里yum源
331 2
|
23天前
|
机器学习/深度学习 算法 数据可视化
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
2024年中国研究生数学建模竞赛C题聚焦磁性元件磁芯损耗建模。题目背景介绍了电能变换技术的发展与应用,强调磁性元件在功率变换器中的重要性。磁芯损耗受多种因素影响,现有模型难以精确预测。题目要求通过数据分析建立高精度磁芯损耗模型。具体任务包括励磁波形分类、修正斯坦麦茨方程、分析影响因素、构建预测模型及优化设计条件。涉及数据预处理、特征提取、机器学习及优化算法等技术。适合电气、材料、计算机等多个专业学生参与。
1580 17
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码