Nacos:是什么?解决的问题?存在的问题?

简介: Nacos:是什么?解决的问题?存在的问题?

Nacos 是阿里巴巴2018年7月份开源的项目,如其名, Naming and Configuration Service ,专注于服务发现和配置管理领域。


Nacos 是什么?

Nacos 是一个更易于帮助构建云原生应用的动态服务发现、配置和服务管理平台,提供「注册中心」、「配置中心」和「动态DNS服务」三大功能。


动态配置服务

动态配置服务让您能够以中心化、外部化和动态化的方式管理所有环境的配置。

动态配置消除了配置变更时重新部署应用和服务的需要。

配置中心化管理让实现无状态服务更简单,也让按需弹性扩展服务更容易。


服务发现管理

动态服务发现对以服务为中心的(例如微服务和云原生)应用架构方式非常关键。

Nacos支持DNS-Based和RPC-Based(Dubbo、gRPC)模式的服务发现。

Nacos也提供实时健康检查,以防止将请求发往不健康的主机或服务实例。

借助Nacos,您可以更容易地为您的服务实现断路器。


动态DNS服务

通过支持权重路由,动态DNS服务能让您轻松实现中间层负载均衡、更灵活的路由策略、流量控制以及简单数据中心内网的简单DNS解析服务。

动态DNS服务还能让您更容易地实现以DNS协议为基础的服务发现,以消除耦合到厂商私有服务发现API上的风险。

使用 Nacos 简化服务发现、配置管理、服务治理及管理的解决方案,让微服务的发现、管理、共享、组合更加容易。


Nacos 解决的问题

服务配置的动态管理

我们的配置一般都通过如下几种形式存在

  • 硬编码--作为类字段的形式存在,导致:动态修改困难,没有持久化
  • 配置文件( properties、yml 文件等)--导致:配置动态变更,可能需要重启应用,让配置生效。当然,你也可以在代码中增加一个定时任务,如每隔 10s 读取配置文件内容,让最新的配置能够及时在应用中生效,这样也就免去了重启应用这个“较重”的运维操作。
  • DB 配置表--导致:配置动态变更,可能需要通过暴露管理接口去解决。

Nacos 真正将配置从应用中剥离出来,统一管理,优雅的解决了配置的动态变更、持久化、运维成本等问题。

应用自身既不需要去添加管理配置接口,也不需要自己去实现配置的持久化,更不需要引入“定时任务”以便降低运维成本。Nacos 提供的配置管理功能,将配置相关的所有逻辑都收拢,并且提供简单易用的 SDK,让应用的配置可以非常方便被 Nacos 管理起来


服务的动态发现

动态服务发现对以服务为中心的(例如微服务和云原生)应用架构方式非常关键。

Nacos支持DNS-Based和RPC-Based(Dubbo)模式的服务发现。

Nacos也提供实时健康检查,以防止将请求发往不健康的主机或服务实例。

借助Nacos,您可以更容易地为您的服务实现断路器。

不仅如此,Nacos提供 DNS-F功能, 可以与K8S、Spring Cloud和Dubbo等多个开源产品进行集成,实现服务的注册功能。


实现权重路由,动态DNS服务

DNS都是IP策略的就近解析。

Nacos通过支持权重路由,动态DNS服务能让您轻松实现中间层负载均衡、更灵活的路由策略、流量控制以及简单数据中心内网的简单DNS解析服务。

动态DNS服务还能让您更容易地实现以DNS协议为基础的服务发现,以消除耦合到厂商私有服务发现API上的风险。

 


Nacos 存在的问题

1. 不能支持多种类型的数据库,如:Oracle、PostgreSQL、DB2等

如果启动多个默认配置下的Nacos节点,数据存储是存在一致性问题的。

为了解决这个问题,Nacos采用了集中式存储的方式来支持集群化部署,目前只支持MySQL的存储。


2. 不支持配置加密

服务配置信息,我们通常需要敏感配置加密存储和传输,保证数据安全


3.  不支持gRPC和Thrift服务发现

Thrift、gRPC是RPC中的重要实现


4. 不支持对接Kubernetes中的configMap

暂时不能和Kubernetes的配置进行打通


5. 不支持配置发布审批

配置发布管控体系,减少人为失误引起的故障


参考链接:

https://grpc.io/docs/

https://zhuanlan.zhihu.com/p/56782065

https://nacos.io/zh-cn/blog/5w1h-what.html

https://nacos.io/zh-cn/blog/nacos-roadmap.html



相关文章
|
消息中间件 SQL 存储
超详细的RabbitMQ入门,看这篇就够了!
RabbitMQ入门,看这篇就够了
217678 68
|
12月前
|
存储 数据库 数据安全/隐私保护
MVCC实现原理
【10月更文挑战第15天】MVCC 通过维护版本链和相关信息,实现了在多事务并发环境下的数据隔离和并发控制,提高了数据库的性能和可用性。
363 57
|
存储 算法 Java
Nacos学习圣经:从入门到精通 Nacos,最全详解
本文,就是 Nacos 学习圣经,帮助大家彻底掌握 阿里 的核心组件, nacos 。 Nacos学习圣经 正式版本会有更新, 。
Nacos学习圣经:从入门到精通 Nacos,最全详解
|
11月前
|
消息中间件 存储 Java
吃透 RocketMQ 消息中间件,看这篇就够了!
本文详细介绍 RocketMQ 的五大要点、核心特性及应用场景,涵盖高并发业务场景下的消息中间件关键知识点。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
吃透 RocketMQ 消息中间件,看这篇就够了!
|
网络安全 开发工具 git
使用Idea提交项目到远程仓库
本文介绍了如何在Idea中创建Git本地仓库、提交更改,并推送代码到Gitee远程仓库的步骤,包括创建本地仓库、提交更改、复制远程仓库地址、配置远程仓库以及推送代码到远程仓库的过程。
使用Idea提交项目到远程仓库
|
easyexcel Java 关系型数据库
阿里巴巴-EasyExcel 基于Java的简单、省内存的读写Excel
该文章主要介绍了在Java应用中如何使用EasyExcel技术完成对Excel文件的导入和导出操作,包括环境搭建、基本概念、快速入门、进阶操作和综合应用等内容,并提供了相关代码示例和注意事项。
 阿里巴巴-EasyExcel 基于Java的简单、省内存的读写Excel
|
运维 Devops 测试技术
DevOps实践:自动化部署与持续集成
【8月更文挑战第24天】在软件工程的世界里,DevOps已经成为一种提升效率和质量的必由之路。本文将深入探讨如何通过自动化部署和持续集成来实施DevOps策略。我们将从基础概念出发,逐步引导读者理解并实现一个简单而强大的自动化部署流程,同时展示如何利用持续集成来保障代码质量和快速迭代。文章旨在为读者提供清晰的操作指南和思路启发,帮助团队构建更加高效、稳定和可靠的软件开发与运维环境。
|
SQL Java 数据库
MySQL设计规约问题之为什么应尽量避免使用子查询,而可以考虑将其优化为join操作
MySQL设计规约问题之为什么应尽量避免使用子查询,而可以考虑将其优化为join操作
|
JSON 负载均衡 Java
SpringCloud Feign 远程调用(史上最详细讲解)
SpringCloud Feign 远程调用(史上最详细讲解)
14203 0
SpringCloud Feign 远程调用(史上最详细讲解)