SpringCloud入门实战(十三)Nacos安装运行及简介

📝 学技术、更要掌握学习的方法,一起学习,让进步发生
👩🏻 作者:一只IT攻城狮 ,关注我,不迷路 。
💐学习建议:1、养成习惯,学习java的任何一个技术,都可以先去官网先看看,更准确、更专业。
💐学习建议:2、然后记住每个技术最关键的特性(通常一句话或者几个字),从主线入手,由浅入深学习。
❤️ 《SpringCloud入门实战系列》解锁SpringCloud主流组件入门应用及关键特性。带你了解SpringCloud主流组件,是如何一战解决微服务诸多难题的。


一、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是一个内部微服务组件,需要在可信的内部网络中运行,不可暴露在公网环境,防止带来安全风险。为防止业务错用的弱鉴权体系,不是防止恶意攻击的强鉴权体系。

nacos端口占用:nacos的默认端口是8848,但是他还占用了另外两个接口:9848、9849。

2、逻辑架构及其组件

在这里插入图片描述

四、安装运行Nacos

可以下载源码或者安装包的方式来获取 Nacos (确保Java 及Maven环境ok)。

1)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即可

在这里插入图片描述
2)也可以选择想下载的版本,直接下载压缩包方式获取(比较快,推荐),然后解压。
下载链接:https://github.com/alibaba/nacos/releases
在这里插入图片描述

moon@moondeiMac %  cd /Users/moon/Downloads/nacos-2.2.1 
moon@moondeiMac nacos % mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U  
# 进入相应版本的bin目录,启动服务器                               
moon@moondeiMac nacos % cd distribution/target/nacos-server-2.2.1/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默认以天为单位检查更新

如果启动报错:Unsatisfied dependency expressed through field 'jwtTokenManager'参看解决办法

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

在这里插入图片描述

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

五、服务注册中心对比

服务注册与发现框架CAP模型控制台管理社区活跃度
EurekaAP支持低(2.x版本闭源)
ZookeeperCP不支持
ConsulCP支持
NacosAP支持

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

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只IT攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值