前言

6月份阿里开源的Nacos出了1.0.1版本,从去年7月份第一个release版本到现在一直在默默关注

官方的版本规划为:Nacos从0.8.0开始支持生产可用,1.0版本可大规模生产可用,2.0版本接入k8s、SpringCloud、ServiceMesh、ServerLess

公司目前的项目都是Springcloud,由于eureka2.X的断更、以及Nacos面世,所以自然而然最近就进行了一次试水爬坑,虽然过程艰苦,但是最终效果似乎还不错。

本文主要从以下几点来带大家熟悉下Nacos

  • Nacos是什么
  • Nacos的发展历程
  • Nacos能做什么
  • Nacos无缝接入各大生态

Nacos是什么

Nacos是什么?好像没听过,不要紧。那Eureka听说过吧,在SpringCloud中做服务注册中心组件,类似的还有Zookeeper、Consul。

所以Nacos也是一个注册中心组件咯,当然是,不过它不仅仅是注册中心

Nacos也是一个配置中心,比如SpringCloud中的Config,将配置文件版本化管理。

那么Nacos到底是什么呢, 总结为官网一句话就是:

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

Nacos的发展历程

首先要说Nacos的发展历程就要从阿里巴巴的内部产品ConfigServer说起了,因为Nacos是ConfigServer 的开源实现

早在2008年阿里就开始服务化的进程(那个时候我好像还在上初中啊),在那个时候阿里内部自研的服务发现解决方案就叫做ConfigServer

ConfigServer经历了十年的发展从V1.0的单机版演变为目前对外公布的V4.0集群版。

2018年7月阿里巴巴高级技术专家许真恩(慕义)发布了Nacos首个开源版本V0.1.0,Nacos作为ConfigServer的开源实现截止目前已经更新到了V1.0.1的大版本,并且支持大规模生产版本。

Nacos能做什么

虽然官方文档也有介绍,但是语言比较官方,我就用大白话谈一点自己的使用感受。

  • 服务注册发现和服务健康检测
    Nacos支持基于DNS和基于RPC的服务发现,服务端可以通过SDK或者Api进行服务注册,相应的服务消费者可以使用DNS或者Http查找的方式获取服务列表。Nacos同时提供对服务的实时健康检查,阻止想不健康的主机或服务发送请求,与Eureka类似Nacos也有友好的控制台界面。
  • 动态配置服务
    接触过SpringCloud应该对config有所了解,那么配置中心也就很好理解,Nacos支持动态的配置管理,将服务的配置信息分环境分类别外部管理,并且支持热更新。不过与Config不同Nacos的配置信息存储与数据库中,支持配置信息的监听和版本回滚。
  • 动态DNS服务
    支持权重路由,更容易地实现中间层负载均衡、更灵活的路由策略、流量控制以及数据中心内网的简单DNS解析服务。不过这个特性目前版本还不支持
  • 服务及元数据管理
    Nacos 能让您从微服务平台建设的视角管理数据中心的所有服务及元数据,包括管理服务的描述、生命周期、服务的静态依赖分析、服务的健康状态、服务的流量管理、路由及安全策略、服务的 SLA 以及最首要的 metrics 统计数据。

Nacos无缝接入各大生态

首先先上一张官方的生态图

除了对于阿里开源生态体系如 Dubbo 等自身的支持,也非常强调融入其它的开源生态,这里就包括 Java 的微服务生态体系 Spring Cloud,Kubernetes/CNCF 云原生生态体系。

Nacos 无缝支持 Spring Cloud,为 Spring Cloud 用户其提供更简便的配置中心和注册中心的解决方案。

Nacos支持目前几乎所有主流的微服务生态体系。

总结

Nacos从官方的介绍上看,就像是SpringCloud中Eureka+Config+Bus+Git+MQ的一个结合体,当然也不能完全这么理解。Nacos是脱胎于阿里内部的ConfigServer,而ConfigServer早在3.0版本就解决了Eureka在1.0版本留下的隐患,所以从技术的更新和迭代角度来看,稳定版本的Nacos将更适合做为微服务体系中的服务注册发现组件,当然了他也不单单只是注册和发现。更多的特性和功能,不如一起搭建试试吧。

参考与感谢

Nacos官方手册

来看看阿里自研服务注册中心产品ConfigServer

nacos 负载策略_Nacos(一):Nacos介绍相关推荐

  1. nacos 负载策略_Spring Cloud Alibaba:Nacos 作为注册中心和配置中心使用

    Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案,Nacos 作为其核心组件之一,可以作为注册中心和配置中心使用,本文将对其用法进行详细介绍. SpringCloud实战 ...

  2. nacos 单机部署_nacos简介以及作为注册/配置中心与Eureka、apollo的选型比较

    一.Nacos简介 Nacos是以服务为主要服务对象的中间件,Nacos支持所有主流的服务发现.配置和管理. Nacos主要提供以下四大功能: 服务发现与服务健康检查 Nacos使服务更容易注册自己并 ...

  3. nacos linux启动_微服务系列之Nacos配置中心之一:Nacos介绍与安装

    一.Nacos 介绍 Nacos 是 Alibaba 公司推出的开源工具,用于实现分布式系统的服务发现与配置管理.英文全称 Dynamic Naming and Configuration Servi ...

  4. Nacos(十一)之NacosSync 介绍

    转载自  NacosSync 介绍 介绍 NacosSync是一个支持多种注册中心的同步组件,基于Spring boot开发框架,数据层采用Spring Data JPA,遵循了标准的JPA访问规范, ...

  5. nacos 本地测试_Nacos注册中心落地实践

    前言 公司在19年开始推进同城双活架构,未来规划是在南汇机房出现故障时能把所有读流量切到宝山机房,这样至少保证读请求是没问题的;我们的微服务使用的zookeeper来做服务发现, zk由于它的强一致性 ...

  6. nacos 本地测试_Nacos入门

    1. Nacos入门 1.1. 前言 我的初衷是想搞一套适合自定义快速开发的框架,把一些必要的技术整合进来,第一想法是尝试下SpringCloud Alibaba,毕竟是阿里开发,适应国人需求,下载源 ...

  7. Nacos系列:欢迎来到Nacos的世界!

    什么是Nacos? Nacos 是构建以"服务"为中心的现代应用架构 (例如微服务范式.云原生范式) 的服务基础设施. Nacos可以做什么? 1.动态配置服务:支持以中心化.外部 ...

  8. 【学习日记2023.6.9】之 SpringCloud入门(认识微服务_服务拆分和远程调用RestTemplate_Eureka注册中心_Ribbon负载均衡_Nacos注册中心)

    文章目录 SpringCloud 1. 认识微服务 1.1 单体架构 1.2 分布式架构 1.3 微服务 1.4 SpringCloud 1.5 总结 2. 服务拆分和远程调用 2.1 服务拆分原则 ...

  9. Alibaba Nacos 服务消费者工程接入nacos并实现调用服务提供者工程

    概述:本章将介绍 服务消费者工程接入到nacos中,并使用nacos集成的负载均衡实现一个简单的轮询的负载均衡调用生产者工程示例. 环境:SpringBoot 2.2.2.RELEASE + Spri ...

最新文章

  1. 树莓派python编程案例-树莓派Python编程指南.pdf
  2. 4.3 IP数据报格式
  3. 揭开知识库问答KB-QA的面纱2·语义解析篇
  4. Spring AOP EXPRESSION
  5. java--JVM--栈帧--JVM及其优化---逃逸技术(堆栈分配方法)(转载)
  6. ElasticSearch第二天
  7. JDBC操作数据库就这八步!
  8. HDFS(名称节点与数据节点)简介
  9. STM32串口调试一直打印 00 00
  10. JanusGraph 数据模型
  11. IDEA返回上一步和下一步快捷键无效:Ctrl+Alt+左箭头 Ctrl+Alt+右箭头
  12. matlab用imcrop进行图片裁剪,并用imwrite存图
  13. 如何免费将XPS转换为PDF格式
  14. 前阿里P10赵海平被打3.25后离职,加入字节跳动,职级或为4+
  15. python打砖块游戏算法设计分析_Python打砖块
  16. ESLint 与 Prettier使用
  17. mysql error code: 1205_Mysql错误:ERROR 1205 (HY000): Lock wait timeout exceeded解决办法
  18. matlab加速度转化为位移,加速度转换成位移的matlab代码及说明
  19. 关于密码测评,你必须了解的10个基本问题
  20. 拆字在线版-扌斥字在纟戋片反【转】------字库增强版

热门文章

  1. 解决github拉项目慢的问题
  2. 异常 Failed to instantiate [java.util.List]: Specified class is an interface
  3. Linux服务器Cache占用过多内存导致系统内存不足问题的排查解决(续)
  4. 解决IDEA中Maven加载依赖包慢的问题
  5. 我将其名称作为字符串时如何执行JavaScript函数
  6. java后台与ISO端app对接
  7. linux docker自动启动,linux – Cron作业不能在Docker容器内自动运行
  8. c++new时赋初值_C++ Lesson 7:new,delete amp; 类的重用
  9. linux中利用shell脚本条件执行linux命令
  10. java biginteger string_String到BigInteger java