阿里开源的微服务中间件 Nacos

2019 年 11 月 5 日 性能与架构

1. 概述

Nacos 是阿里巴巴推出来的一个新开源项目,提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

Nacos 的发音是 /nɑ:kəʊs/,全称是:

Name and Config Service

nacos 是其首字母的拼写。

所以,Nacos 的核心功能就是 服务注册与动态配置

对应到 springcloud 可以这么理解:

Nacos = Spring Cloud Eureka + Spring Cloud Config

2. 服务注册

提供服务注册和发现功能,服务实例在启动时注册,在关闭时注销,客户端查询服务注册表以查找可用实例。

服务注册中心还可以调用服务实例的健康检查API来验证它是否能够处理请求。

Nacos 支持 CAP 模型中的 AP,这点和 Eureka 一样,也同样有管理控制台,但相比 Eureka 的社区活跃度 Nacos 要高很多。

使用步骤:

(1)添加依赖 spring-cloud-starter-alibaba-nacos-discovery

(2)启动类添加注解 @EnableDiscoveryClient

(3)配置,核心包括:服务名称、nacos server 地址

3. 动态配置

动态配置消除了配置变更时重新部署应用和服务的需要,让配置管理变得更加高效和敏捷。

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

Nacos 提供了一个简洁易用的UI控制台帮助管理所有的服务和应用的配置。

使用步骤:

(1)添加依赖 spring-cloud-starter-alibaba-nacos-config

(2)添加配置自动更新注解 @RefreshScope

(3)配置,核心包括:服务名称、nacos server 地址

(4)通过 nacos api 发布配置

4. 其他特性

4.1 健康检查

Nacos 提供对服务的实时的健康检查,阻止向不健康的主机或服务实例发送请求。

Nacos 支持传输层 (PING 或 TCP)和应用层 (如 HTTP、MySQL、用户自定义)的健康检查。

Nacos 还提供了 agent 上报模式和服务端主动检测2种健康检查模式。

Nacos 还提供了统一的健康检查仪表盘,帮助您根据健康状态管理服务的可用性及流量。

4.2 动态DNS

支持权重路由,可以更容易地实现中间层负载均衡、更灵活的路由策略、流量控制以及数据中心内网的简单DNS解析服务。

还能更容易地实现以 DNS 协议为基础的服务发现。

4.3 元数据管理

元数据是指包括服务端点(endpoints)、服务标签、服务版本号、服务实例权重、路由规则、安全策略等描述服务的数据。

Nacos 可以从微服务平台建设的视角管理数据中心的所有服务及元数据,包括管理服务的描述、生命周期、服务的静态依赖分析、服务的健康状态、服务的流量管理、路由及安全策略、服务的 SLA 以及最首要的 metrics 统计数据。

5. 小结

Nacos 以 服务 为核心,支持几乎所有主流类型的“服务”的发现、配置和管理,例如:

  • k8s
  • gRPC
  • Dubbo
  • Spring Cloud
  • Docker

还有便捷的 Open-API 以便扩展,文档资料也比较丰富:

官网 https://nacos.io/zh-cn/index.html

源码 https://github.com/alibaba/nacos


登录查看更多
5

相关内容

【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
57+阅读 · 2020年6月26日
【SIGMOD2020-腾讯】Web规模本体可扩展构建
专知会员服务
29+阅读 · 2020年4月12日
【2020新书】Kafka实战:Kafka in Action,209页pdf
专知会员服务
67+阅读 · 2020年3月9日
【新书】Java企业微服务,Enterprise Java Microservices,272页pdf
【阿里巴巴】 AI编译器,AI Compiler @ Alibaba,21页ppt
专知会员服务
44+阅读 · 2019年12月22日
【阿里技术干货】知识结构化在阿里小蜜中的应用
专知会员服务
97+阅读 · 2019年12月14日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
95+阅读 · 2019年12月4日
Keras作者François Chollet推荐的开源图像搜索引擎项目Sis
专知会员服务
29+阅读 · 2019年10月17日
阿里技术大牛:一份架构师成神路线图!
51CTO博客
30+阅读 · 2019年7月6日
工行基于MySQL构建分布式架构的转型之路
炼数成金订阅号
15+阅读 · 2019年5月16日
专访阿里亚顿:Serverless与BFF与前端
前端之巅
45+阅读 · 2019年5月8日
浅谈 Kubernetes 在生产环境中的架构
DevOps时代
11+阅读 · 2019年5月8日
PHP使用Redis实现订阅发布与批量发送短信
安全优佳
7+阅读 · 2019年5月5日
Kong 1.1 带来声明式配置与无数据库部署模式
开源中国
8+阅读 · 2019年3月28日
百度开源项目OpenRASP快速上手指南
黑客技术与网络安全
5+阅读 · 2019年2月12日
开源巨献:阿里巴巴最热门29款开源项目
算法与数据结构
5+阅读 · 2017年7月14日
Factor Graph Attention
Arxiv
6+阅读 · 2019年4月11日
VIP会员
相关VIP内容
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
57+阅读 · 2020年6月26日
【SIGMOD2020-腾讯】Web规模本体可扩展构建
专知会员服务
29+阅读 · 2020年4月12日
【2020新书】Kafka实战:Kafka in Action,209页pdf
专知会员服务
67+阅读 · 2020年3月9日
【新书】Java企业微服务,Enterprise Java Microservices,272页pdf
【阿里巴巴】 AI编译器,AI Compiler @ Alibaba,21页ppt
专知会员服务
44+阅读 · 2019年12月22日
【阿里技术干货】知识结构化在阿里小蜜中的应用
专知会员服务
97+阅读 · 2019年12月14日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
95+阅读 · 2019年12月4日
Keras作者François Chollet推荐的开源图像搜索引擎项目Sis
专知会员服务
29+阅读 · 2019年10月17日
相关资讯
阿里技术大牛:一份架构师成神路线图!
51CTO博客
30+阅读 · 2019年7月6日
工行基于MySQL构建分布式架构的转型之路
炼数成金订阅号
15+阅读 · 2019年5月16日
专访阿里亚顿:Serverless与BFF与前端
前端之巅
45+阅读 · 2019年5月8日
浅谈 Kubernetes 在生产环境中的架构
DevOps时代
11+阅读 · 2019年5月8日
PHP使用Redis实现订阅发布与批量发送短信
安全优佳
7+阅读 · 2019年5月5日
Kong 1.1 带来声明式配置与无数据库部署模式
开源中国
8+阅读 · 2019年3月28日
百度开源项目OpenRASP快速上手指南
黑客技术与网络安全
5+阅读 · 2019年2月12日
开源巨献:阿里巴巴最热门29款开源项目
算法与数据结构
5+阅读 · 2017年7月14日
Top
微信扫码咨询专知VIP会员