SpringCloud入门实战(十三)Nacos服务注册与发现+配置管理详解

news2024/12/23 18:15:07

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

👉🏻 👉🏻 👉🏻 SpringCloud 入门实战系列不迷路 👈🏻 👈🏻👈🏻:

  • SpringCloud 入门实战(一)什么是SpringCloud?
  • SpringCloud 入门实战(二)SpringCloud项目搭建
  • SpringCloud 入门实战(三)Eureka注册中心集成
  • SpringCloud入门 实战(四)Zookeeper、Consul注册中心集成
  • SpringCloud入门实战(五)Ribbon负载均衡集成
  • SpringCloud入门实战(六)OpenFeign服务调用集成
  • SpringCloud入门实战(七)Hystrix入门简介
  • SpringCloud入门实战(七)Hystrix服务降级
  • SpringCloud入门实战(七)Hystrix服务熔断
  • SpringCloud入门实战(七)Hystrix服务限流
  • SpringCloud入门实战(七)Hystrix Dashboard图形化监控
  • SpringCloud入门实战(八)Gateway服务网关集成
  • SpringCloud入门实战(九) Config配置中心
  • SpringCloud入门实战(十)SpringCloud Bus消息总线
  • SpringCloud入门实战(十一)SpringCloud Stream 消息驱动
  • SpringCloud入门实战(十二)Sleuth+Zipkin分布式请求链路跟踪详解
  • SpringCloud入门实战(十三)Nacos服务注册与发现+配置管理详解

    文章目录

    • 一、Nacos概述
      • 1、Nacos是什么?
      • 2、Nacos与SpringCloud Alibaba
    • 二、Nacos 的关键特性
      • 1、服务发现和服务健康监测
      • 2、动态配置服务
      • 3、动态 DNS 服务
      • 4、服务及其元数据管理
    • 三、基本概念及架构
      • 1、关于Nacos 你需要知道的
      • 2、逻辑架构及其组件
    • 四、安装运行Nacos
    • 五、服务注册中心对比

一、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模型控制台管理社区活跃度
EurekaAP支持低(2.x版本闭源)
ZookeeperCP不支持
ConsulCP支持
NacosAP支持

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/744524.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电脑网络最基本的常识简介(合集)

电脑网络最基本的常识简介 什么是HTML? HTML(Hyper Text Mark-up Language )即超文本标记语言,是 WWW 的描述语言,由 Tim Berners-lee提出。设计 HTML 语言的目的是为了能把存放在一台电脑中的文本或图形与另一台电脑中的文本或图形方便地联系在一起&a…

蚁群算法—ACA

🍎道阻且长,行则将至。🍓 目录 一、蚁群算法简介🍓1.ACA基本思想2.ACA基本原理3.ACA基本步骤 二、算法求解TSP问题🍎1.导入数据2.计算城市间相互距离3.初始化参数4.迭代寻找最佳路径5.结果显示End 一、蚁群算法简介&a…

软件 - 配置安装 Photoshop 的 RID 独立运行版本

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/131673004 Adobe Photoshop 是一款专业的图像处理软件,广泛应用于平面设计、摄影、插画、视频制作等领域,可以对各种格式的图片进行编辑、修饰、合成、优化等操作,创…

SpringBoot + Vue 实现酒店客房管理系统

目录 1 问题的提出 5 2系统开发的可行性研究 6 2.1 技术上可行性分析 6 系统现阶段的发展过程中,利用现有人力和物力是完全具备的能力开发出来 6 2.2 经济的可行性分析 6 2.3 操作可行性分析 6 3 需求分析 7 3.1 需求描述 7 3.2 功能需求分析 7 3.3 非功能需求分析…

JDBC学习笔记

目录 一、JDBC 1:为什么要学习JDBC技术 2、JDBC技术概述与理解 3、JDBC使用步骤分析 3.1、注册驱动 3.2 、获取连接 3.3、创建发送sql语句对象 3.4、发送sql语句 3.5、结果集解析 3.6、资源关闭 一、JDBC 1:为什么要学习JDBC技术 1、Java和数…

【雕爷学编程】Arduino动手做(117)---P10V706LED屏模组3

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&am…

亚马逊买家号如何绑定信用卡

要在亚马逊上绑定信用卡作为买家号的支付方式,请按照以下步骤进行操作: 1、登录亚马逊账户:使用您的亚马逊账户用户名和密码登录到亚马逊网站。 2、导航至"我的账户":在页面右上角,将鼠标悬停在"你好…

安装使用docker-compose

Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排 Docker-Compose将所管理的容器分为三层,分别是工程(project),服务(service)以及容器(container&…

【单周期CPU】LoongArch | LA32R | 二选一控制器MUX | 数据通路

前言:本章内容主要是演示在vivado下利用Verilog语言进行单周期简易CPU的设计。一步一步自己实现模型机的设计。本章先介绍单周期简易CPU中数据通路的设计。 💻环境:一台内存4GB以上,装有64位Windows操作系统和Vivado 2017.4以上版…

华为OD机试真题 Java 实现【矩阵中非1的元素个数】【2023 B卷 200分】,附详细解题思路

目录 一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明先将[0,0]位置的值变为1。第一次同化:第二次同化: 大家好,我是哪吒。 一、题目描述 存在一个m*n的二维数组,其成员取…

小程序项目时间选择器用法

项目需求是要实现这种形式, 但是相信大家都试了各种插件,都不太合适,uView框架也不能满足自己的需要; 推荐使用:uview-ui-plus 基本上小程序遇到的单选多选 日期 省市区 都可以完美的实现,可以通过插件市场安装使用 但是要实现ui给的原型图 还需要做一下调整 弹性布局给两个选…

Linux查找关键字出现的位置

在Linux中,您可以使用以下命令来查找文件中关键字出现的位置: grep -rnw /path/to/search -e keyword其中: - -r 递归地搜索指定路径下的所有子目录。 - -n 显示匹配行的行号。 - -w 完整匹配单词,而不是部分匹配。 - /path/to/s…

pandas 重复数据处理详解

概要 重复值处理主要涉及两个部分,一个是找出重复值,第二个是删除重复值,也就是根据自己设定的条件进行删除操作。本次来介绍关于重复数据处理的几个常用方法。 定位重复值 对于重复值,我们首先需要查看这些重复值是什么样的形式…

LFU算法的详细介绍与实现

LRU 算法的淘汰策略是 Least Recently Used,也就是每次淘汰那些最久没被使用的数据;而 LFU 算法的淘汰策略是 Least Frequently Used,也就是每次淘汰那些使用次数最少的数据。 LRU 算法的核心数据结构是使用哈希链表 LinkedHashMap&#xff…

spring全家桶(一):如何创建springboot项目

一.如何创建springboot项目 1.通过官网网站创建项目:https://start.spring.io/ 2.eclipse通过插件Spring Tool Suite(sts)创建项目 3.idea默认已经有spring插件 二.程序入口 SpringBootApplication public class HelloApplication {public static void main(Strin…

Linux--获取当前进程的父进程PID(即PPID)

方法一&#xff1a;编程法 #include <sys/types.h>pid_t ppidgetppid(); 方法二&#xff1a;指令法 ps axj | head -1 && ps axj | grep 当前进程PID 注&#xff1a;你会发现&#xff0c;每次查看当前进程PID时&#xff0c;PID都不相同&#xff0c;但是它的P…

设计模式——原型模式

原型模式比较简单&#xff0c;本质就是将一个设置好一部分公共属性的对象进行克隆&#xff0c;产生出大量的对象&#xff0c;再对每个对象进行相应的个性化处理需要注意的是&#xff1a;对象克隆时&#xff0c;如果其成员变量中存在引用类型&#xff08;数组、引用对象等&#…

《人工智能.一种现代方法》原版精读思维导图-第二章

目录 书籍 相关 2. Intelligent Agents 2.1 Agents and Environments 2.2 Good Behavior: The Concept of Rationality 2.3 The Nature of Environments 2.4 The Structure of Agents summary 书籍 人工智能.一种现代方法 Artificial Intelligence. The Modern Appro…

基于LLM大模型开发Web App生成器

随着越来越多的代码生成模型公开可用&#xff0c;现在可以以我们以前无法想象的方式进行文本到网络甚至文本到应用程序。 本教程介绍了一种通过流式传输和渲染内容来生成 AI Web 内容的直接方法。 推荐&#xff1a;用 NSDT设计器 快速搭建可编程3D场景。 1、在 Node 应用程序中…

13 个最佳免费 PDF 编辑器清单

您正在寻找一款真正免费的 PDF 编辑器&#xff0c;不仅可以编辑和添加文本&#xff0c;还可以更改图像、添加您自己的图形、签署您的名字、填写表格等等&#xff1f;您来对地方了&#xff1a;我研究了这些类型的应用程序&#xff0c;以得出您正在寻找的内容的列表。 其中一些是…