🎉 Alibaba微服务组件 Nacos 注册中心超详细学习笔记 🎉

📌 写在前面:本文基于官方PDF文档与实战经验,整理了Nacos注册中心的核心知识点、部署流程与实战技巧,力求图文并茂、通俗易懂,适合收藏反复阅读!✨


1️⃣ 什么是 Nacos?🤔

Nacos(Naming and Configuration Service)是阿里巴巴开源的一款更易于构建云原生应用的 动态服务发现配置管理服务管理平台

🔑 核心功能

  • ✅ 服务发现与注册(Service Discovery)
  • ✅ 服务健康监测(Health Check)
  • ✅ 动态配置管理(Dynamic Configuration)
  • ✅ 动态DNS服务(Dynamic DNS)
  • ✅ 服务及其元数据管理(Metadata Management)

2️⃣ Nacos注册中心详解 📊

2.1 注册中心演变与设计思想 🚀

阶段描述问题
阶段1:硬编码服务地址硬编码在代码中扩容、缩容困难
阶段2:Nginx负载均衡使用Nginx维护upstream服务数量多时配置复杂
阶段3:注册中心引入注册中心(如Nacos)实现服务自动注册与发现

2.2 Nacos注册中心架构 🏗️

注册服务
拉取服务列表
心跳检测
服务同步
服务提供者
Nacos Server
服务消费者
Nacos Server集群

2.3 核心功能详解 🔍

功能描述
服务注册服务启动时,Client向Server注册自身信息(IP、端口、元数据)
服务心跳Client定时(默认5s)发送心跳,确保服务可用
服务同步Server集群间通过Raft协议同步服务信息
服务发现Client从Server拉取服务列表并本地缓存
健康检查Server定时检测服务健康状态,超过15s无心跳标记为不健康,30s剔除

3️⃣ Nacos Server部署详解 🛠️

3.1 单机模式部署 🖥️

  • 下载地址:GitHub Releases
  • 启动命令
    sh startup.sh -m standalone
    
  • 访问地址http://localhost:8848/nacos
  • 默认账号密码nacos/nacos

3.2 集群模式部署 🌐

📍前置条件
  • JDK 1.8+
  • Maven 3.3+
  • MySQL 5.7+
  • Nginx(负载均衡)
📍集群部署步骤
步骤操作
1下载并解压Nacos安装包
2配置conf/application.properties
3配置conf/cluster.conf
4初始化MySQL数据库
5启动多个Nacos节点
6配置Nginx反向代理
📍示例配置(cluster.conf)
192.168.3.100:8848
192.168.3.101:8848
192.168.3.102:8848
📍Nginx配置示例
upstream nacos-cluster {server 192.168.3.100:8848;server 192.168.3.101:8848;server 192.168.3.102:8848;
}server {listen 8847;location /nacos/ {proxy_pass http://nacos-cluster/nacos/;}
}

4️⃣ Prometheus + Grafana 监控Nacos 📈

4.1 暴露metrics数据 📊

  • 访问地址
    http://localhost:8848/nacos/actuator/prometheus
    

4.2 Prometheus配置 🛠️

scrape_configs:- job_name: 'nacos'static_configs:- targets: ['localhost:8848']

4.3 Grafana仪表盘展示 📊

  • 导入官方仪表盘:Grafana Dashboard
  • 关键指标
    • CPU使用率
    • 内存使用率
    • 服务注册数量
    • 服务健康状态

5️⃣ Spring Cloud Alibaba Nacos快速开始 🚀

5.1 版本选型 📝

Spring Cloud Alibaba版本Spring Cloud版本Spring Boot版本
2.2.1.RELEASEHoxton.SR32.2.x

5.2 搭建Nacos-client服务 🏗️

① 引入依赖(pom.xml)
<dependencyManagement><dependencies><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2.2.1.RELEASE</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
② 配置文件(application.yml)
server:port: 8002
spring:application:name: service-usercloud:nacos:discovery:server-addr: localhost:8848
③ 启动类添加注解
@SpringBootApplication
@EnableDiscoveryClient
public class UserServiceApplication {public static void main(String[] args) {SpringApplication.run(UserServiceApplication.class, args);}
}
④ RestTemplate调用服务
@Bean
@LoadBalanced
public RestTemplate restTemplate() {return new RestTemplate();
}// 调用示例
String result = restTemplate.getForObject("http://service-order/order/1", String.class);

6️⃣ 总结与建议 🎯

场景建议
本地开发使用单机模式,快速启动
生产环境使用集群模式,确保高可用
监控运维集成Prometheus + Grafana,实时监控
服务调用使用Ribbon或LoadBalancer实现负载均衡

📚 参考资料

  • Nacos官方文档
  • Spring Cloud Alibaba官方文档

🙋‍♂️ 互动环节:你在使用Nacos过程中遇到过哪些问题?欢迎在评论区留言交流!

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 策略模式 demo

策略模式介绍策略模式&#xff08;Strategy Pattern&#xff09;是一种行为型设计模式&#xff0c;它定义了一系列算法&#xff0c;将每个算法封装起来并使它们可相互替换。策略模式让算法的变化独立于使用算法的客户端&#xff0c;从而实现灵活的算法切换。核心角色&#xff1…

SAP Valuation Category在制造业成本核算中的使用场景与配置方案

Valuation Category在制造业成本核算中的使用场景与配置方案一、核心使用场景&#xff08;制造业特有&#xff09;1. 内制 vs 外购成本分离业务需求&#xff1a;同一物料可能通过内部生产&#xff08;成本含料工费&#xff09;或外部采购&#xff08;成本含采购价运费&#xff…

我的 LeetCode 日记:Day 36 - 动态规划,背包问题的千变万化

昨天&#xff0c;我初步掌握了 0/1 背包问题的理论基础和标准解法。今天&#xff0c;我将这种思想应用到了更广泛的场景中。今天的几道题&#xff0c;乍一看和背包没什么关系&#xff0c;但通过巧妙的数学转化&#xff0c;它们的核心都变成了 0/1 背包问题。 这让我深刻体会到…

本地处理不上传!隐私安全的PDF转换解决方案

PDF能锁定排版、字体、图片位置&#xff0c;无论在什么设备打开都保持一致。它是无广告、简洁高效的专业PDF处理工具。功能丰富&#xff0c;支持批量操作&#xff1a;只需将文件拖入界面&#xff0c;选择目标格式&#xff08;如Word、PPT、Excel、图片等&#xff09;&#xff0…

Docker build创建镜像命令入门教程

一、核心概念Dockerfile 定义镜像构建步骤的文本文件&#xff0c;包含一系列指令和配置&#xff0c;用于自动化创建镜像。镜像层&#xff08;Layer&#xff09; Docker 镜像由多层只读层叠加而成&#xff0c;每个指令&#xff08;如 RUN、COPY&#xff09;会生成一个新的层。层…

Redis 是单线程模型吗?

最近在面试中经常被问到这个问题&#xff1a;"Redis是单线程的吗&#xff1f;"很多同学都会脱口而出&#xff1a;"是的&#xff01;"但其实这个答案并不完全正确。今天我们就来聊聊Redis的线程模型&#xff0c;把这个问题彻底搞清楚。 先说结论 Redis的线程…

Hologres实战:路径分析函数

前言 Hologres提供了一套高效的路径分析函数&#xff0c;包括路径明细计算和结果解析功能&#xff0c;能够帮助用户深入理解用户行为路径&#xff0c;并通过桑基图实现数据可视化。 一、核心功能 路径明细计算&#xff1a;精确记录用户在产品或功能中的完整访问路径结果解析…

产品开发实践(常见的软硬结合方式)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】前面说过&#xff0c;传统的纯软件开发&#xff0c;在国内的大背景下面是很难存活的。但是如果是把软件&#xff0c;构建在硬件基础之上&#xff0c…

Linux | i.MX6ULL网络通信-套字节 UDP(第十八章)

01 Linux | i.MX6ULL网络通信-套字节 TCP(第十七章) 02 iTOP-IMX6ULL 实现基于 UDP 的 socket 编程。

学习嵌入式第三十天

文章目录进程和线程&#xff08;续&#xff09;线程1.线程传参2.线程属性3.线程间通信1.概念2.方式3.互斥锁4.死锁5.信号量习题 进程和线程&#xff08;续&#xff09; 线程 1.线程传参使用第四个参数实现对线程内部的传参 代码实现&#xff1a; #include <stdio.h> #inc…

GaussDB 数据库架构师修炼(十三)安全管理(3)-行级访问控制

1 背景行级访问控制特性将数据库的访问控制精确到数据表行级别 &#xff0c;只允许用户查看 、更新或删除特定的行数据。2 实例场景实例以医生只能看到治疗的病人&#xff0c;不能看其它医生的病人为例&#xff1a;1)医院病人的信息表pat_info&#xff1a;csdn> set search_…

Wi-Fi 与蜂窝网络(手机网络)的核心区别,以及 Wi-Fi 技术未来的发展方向

在日常生活中&#xff0c;我们既离不开家里的 Wi-Fi&#xff0c;也离不开手机的 4G/5G 网络。它们都能把我们连接到互联网&#xff0c;但底层的工作方式却大不相同。一、设计初衷的不同Wi-Fi诞生于 1997 年的 IEEE 802.11 标准&#xff0c;定位是局域网无线替代。它的目标是让电…

C++编程实战:高效解决算法与数据结构问题

个人主页 &#xff1a; zxctscl 专栏 【C】、 【C语言】、 【Linux】、 【数据结构】、 【算法】 如有转载请先通知 题目1. 数字统计2. 两个数组的交集3. 牛牛的快递4. 点击消除5. 最小花费爬楼梯6. 简写单词1. 数字统计 BC153 数字统计 #include <iostream> using na…

《零基础入门AI:深度学习中的视觉处理(卷积神经网络(CNN)进阶)》

一、卷积知识扩展 1. 二维卷积 单通道版本 对于单通道输入图像 III (尺寸 HWH \times WHW) 和卷积核 KKK (尺寸 FFF \times FFF)&#xff0c;输出特征图 OOO 的计算公式为&#xff1a; O(i,j)∑m0F−1∑n0F−1I(im,jn)⋅K(m,n)O(i,j) \sum_{m0}^{F-1} \sum_{n0}^{F-1} I(im, j…

pyecharts可视化图表-pie:从入门到精通(进阶篇)

欢迎来到pyecharts饼图系列教程的进阶篇&#xff01;在上一篇基础教程中&#xff0c;我们学习了饼图的基本概念和简单实现。在本文中&#xff0c;我们将深入探索pyecharts中饼图的六种高级用法和自定义选项&#xff0c;包括环形饼图、富文本标签饼图、滚动图例饼图、环形图、嵌…

【JAVA 核心编程】面向对象高级:类变量与方法 抽象类与接口

一、类变量与类方法&#xff08;静态变量&#xff09; 1&#xff09;类变量 class Child{private String name;//定义一个变量count&#xff0c;是一个类变量&#xff08;静态变量&#xff09;static静态//该变量最大的特点就是会被Child 类的所有对象访问public static int co…

【Java基础面试题】数据类型

Java面试高频总结&#xff1a;基本数据类型深度解析 &#x1f4ca; 八种基本数据类型详解数据类型关键字字节数位数默认值取值范围核心特性字节型byte180-128 ~ 127最小整数类型短整型short2160-32,768 ~ 32,767较少使用整型int4320-2 ~ 2-1 (约21亿)最常用整数类型长整型long8…

攻防世界—unseping(反序列化)

一.审题<?php highlight_file(__FILE__);class ease{private $method;private $args;function __construct($method, $args) {$this->method $method;$this->args $args;}function __destruct(){if (in_array($this->method, array("ping"))) {call_u…

AI热点周报(8.10~8.16):AI界“冰火两重天“,GPT-5陷入热议,DeepSeek R2模型训练受阻?

名人说&#xff1a;博观而约取&#xff0c;厚积而薄发。——苏轼《稼说送张琥》 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录3分钟速览版&#xff1a;一张表看懂本周AI大事一、GPT-5&#xff1a;期待越高&#x…

Python_vue3_django旅拍在线婚纱摄影网站的设计与实现016023190_源码LW_讲解安装

目录前言-本系统介绍已开发项目效果实现截图开发技术详细介绍论文设计框架系统测试核心代码参考示例总结源码获取详细视频演示或者查看其他版本&#xff1a;文章底部获取博主联系方式&#xff01;前言-本系统介绍 利用Python语言、MySQL数据库&#xff0c;Django框架&#xff0…