SpringCloud入门实战-Nacos简介、安装、运行详解

❤️ 《SpringCloud入门实战系列》解锁SpringCloud主流组件入门应用及关键特性。带你了解SpringCloud主流组件,是如何一战解决微服务诸多难题的。项目demo:源码地址
❤️ 作者:一只IT攻城狮。关注我,不迷路。
❤️ 再小的收获x365天都会成就不一样的自己,一起学习,一起进步。

一、Nacos概述

使用 Nacos 简化服务发现、配置管理、服务治理及管理的解决方案,让微服务的发现、管理、共享、组合更加容易。Nacos = Eureka + Config + bus可以替代Eureka做服务注册中心,可以替代Config做服务配置中心,是不是很强大。

1、Nacos是什么?

Nacos: /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service的首字母简称。

官网可知:Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

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

Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

2、Nacos与SpringCloud Alibaba

阿里为 SpringCloud 贡献了一个子项目,叫做 SpringCloud Alibaba,其中包括了微服务开发中的几个基础组件:

  • Sentinel – 提供流控、服务降级、熔断能力,为系统提供防护。
  • Nacos – 负责服务注册与发现,还有分布式配置。
  • RocketMQ – 用于实现事件驱动模式、消息总线,已经整合了 SpringCloud Stream。
  • Seata – 用于实现分布式事务。
  • Dubbo RPC – 使用 RPC 进行服务调用。

Nacos 是国产的,是阿里开源的。Nacos 就是SpringCloud Alibaba项目中的一项重要组件。

二、Nacos 的关键特性

1、服务发现和服务健康监测

Nacos 支持基于 DNS 和基于 RPC (Dubbo / gRPC) 的服务发现。
服务消费者可以使用DNS或HTTP&API查找和发现服务。
Nacos 提供对服务的实时的健康检查,阻止向不健康的主机或服务实例发送请求。
Nacos 支持传输层 (PING 或 TCP)和应用层 (如 HTTP、MySQL、用户自定义)的健康检查。
对于复杂的云环境和网络拓扑环境中(如 VPC、边缘网络等)服务的健康检查,Nacos 提供了 agent 上报模式和服务端主动检测2种健康检查模式。
Nacos 还提供了统一的健康检查仪表盘,根据健康状态管理服务的可用性及流量。

2、动态配置服务

中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置。
配置变更时不需要重新部署。
使服务按需弹性扩展变得更容易。
Nacos 提供了一个简洁易用的UI(控制台界面) 。
Nacos 还提供包括配置版本跟踪、灰度发布、一键回滚配置以及客户端配置更新状态跟踪在内的一系列开箱即用的配置管理特性。

3、动态 DNS 服务

动态 DNS 服务支持权重路由。
动态DNS服务还能让容易地实现以 DNS 协议为基础的服务发现,消除耦合到厂商私有服务发现 API 上的风险。
Nacos可以管理服务的关联域名和可用的 IP:PORT 列表.

4、服务及其元数据管理

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

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

三、基本概念及架构

1、关于Nacos 你需要知道的

Nacos 无缝支持一些主流的开源生态:Spring Cloud、Apache Dubbo and Dubbo Mesh、Kubernetes and CNCF等。

Nacos 引入了一些基本的概念:如命名空间、配置项、配置集 ID等等:我们可以在官网具体了解一下。

两种交付工件:Nacos 支持标准 Docker 镜像(TODO: 0.2版本开始支持)及 zip(tar.gz)压缩包的构建物。

两种启动模式:Nacos 支持将注册中心(Service Registry)与配置中心(Config Center) 在一个进程合并部署或者将2者分离部署的两种模式。

Nacos 数据模型 :Key 由三元组唯一确定, Namespace默认是空串,公共命名空间(public),分组默认是 DEFAULT_GROUP。

免费的公有云服务模式:除了自己部署和启动 Nacos 服务之外,在阿里云公有云的商业产品中会提供 Nacos 的免费的公有云服务。

Nacos提供简单的鉴权实现,Nacos是一个内部微服务组件,需要在可信的内部网络中运行,不可暴露在公网环境,防止带来安全风险。为防止业务错用的弱鉴权体系,不是防止恶意攻击的强鉴权体系.

2、逻辑架构及其组件

四、安装运行Nacos

可以下载源码或者安装包的方式来获取 Nacos (确保Java 及Maven环境ok)。Github 上下载源码方式可能会有点慢,建议直接下载最新稳定版压缩包方式获取。

本文以Github源码方式、Mac环境为例操作一下:

# 下载编译打包布署到本地maven仓库
moon@moondeiMac % git clone https://github.com/alibaba/nacos.git
moon@moondeiMac % cd nacos/
moon@moondeiMac nacos % mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U  
moon@moondeiMac nacos % ls -al distribution/target/   
# 进入相应版本的bin目录,启动服务器                               
moon@moondeiMac nacos % cd distribution/target/nacos-server-$version/nacos/bin
# 启动命令(standalone代表着单机模式运行,非集群模式):
moon@moondeiMac bin % sh startup.sh -m standalone

#关闭服务器bin下执行:sh shutdown.sh即可

参数说明:
mvn clean install依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install等8个阶段
test.skip为 true,表示在 clean 过程中跳过测试
-U:该参数能强制让Maven检查所有SNAPSHOT依赖更新,确保集成基于最新的状态,如果没有该参数,Maven默认以天为单位检查更新

访问:http://localhost:8848/nacos可查看管理界面(用户名和密码都是nacos)

通过菜单我们也可以看到nacos的功能:配置管理、服务管理、命名空间、集群管理。

五、服务注册中心对比

服务注册与发现框架 CAP模型 控制台管理 社区活跃度
Eureka AP 支持 低(2.x版本闭源)
Zookeeper CP 不支持
Consul CP 支持
Nacos AP 支持

Nacos厉害在于支持AP和CP模式的切换,Nacos实例可以选择临时实例和持久化实例
临时实例:客户端上报健康状态,摘除不健康实例,非持久化 AP Eureka
持久化实例:服务端探测健康状态,保留不健康实例,持久化 CP Consul

关于Nacos项目集成下一节再详细聊聊。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,717评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,501评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,311评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,417评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,500评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,538评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,557评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,310评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,759评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,065评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,233评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,909评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,548评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,172评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,420评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,103评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,098评论 2 352

推荐阅读更多精彩内容