自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(413)
  • 收藏
  • 关注

原创 Redis系列文章全汇总

因为该系列是笔者纯个人梳理总结,所以难免在表述或者知识点说明上有所欠缺,如您发现文中存在任何需要修正之处,请不吝通过下方练习方式告知,笔者将第一时间核实更新。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。系列中比较核心且重要的知识点的文章进行简单的归类汇总,希望对你有帮助。

2025-05-01 23:09:30 796

原创 突破与重塑:逃离Java舒适区,借Go语言复刻Redis的自我突破和成长

这一年来,大家围绕Redis技术点展开的日常提问与积极交流,就像源源不断的动力,极大地激发了我深入钻研Redis的热情。每一次与大家探讨那些复杂的技术难题,每一回解答大家提出的疑惑,都让我对Redis有了更为透彻的认知,也促使我在这条技术探索之路上不断迈进。正是因为有你们的存在,这个交流圈充满了活力与智慧的碰撞。你们的每一个问题,都像是打开新知识大门的钥匙;你们分享的每一种见解,都丰富了我对Redis技术体系的理解。新的一年已经悄然来临,衷心希望我们能够携手并进,在技术的海洋里继续畅游。

2025-01-24 01:19:53 2133 12

原创 聊聊java零拷贝的几种实现

内核函数),从而实现本地数据传输只需将数据从磁盘加载到页缓存,后直接写入到目标文件的页缓存地址,由此减少了切态和用户态到内核态的拷贝开销。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。在之前的文章中,笔者对零拷贝技术进行了比较详细的介绍,而本文将基于之前文章的理论,从。

2024-09-30 08:55:34 1221

原创 基于DynamicDataSource整合分库分表框架Shardingsphere

会出现各种奇奇怪怪的报错,对此笔者结合报错原因查阅网上资料和底层源码运行机制找到了相对简单的适配步骤,遂以此文分享一下整个过程,希望对你有帮助。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。数据源完成了整合,实现多数据源场景下使用分库分表的操作,本文到此结束,希望这套方案对你有帮助。

2024-09-19 08:52:42 994 1

原创 mini-redis如何解析处理客户端请求

因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。自此笔者通过一篇文章, 介绍了笔者所实现的mini-redis中协议解析和指令处理的核心流程,希望对你理解笔者的源码有所帮助。协议的本质最简单的方式就是通过抓包的方式查看协议的基本格式和建立连接时的交互逻辑,所以这里笔者也贴出自己在研究。

2024-09-12 08:37:47 1463

原创 浅谈CPU流水线的艺术

本文深入剖析了CPU指令流水线设计原理与优化策略。首先通过指令串行执行的低效性(16ns完成4条指令)引出流水线思想,通过并行利用不同电路单元将执行时间缩短至7ns(提升56%)。进一步探讨了分级流水线设计在平衡性能与功耗上的取舍,并分析了结构冒险、数据冒险和控制冒险等竞争问题。随后介绍了乱序执行技术,通过保留站缓存和寄存器重命名解决指令依赖性问题,实现as-if-serial的并发效果。文章指出流水线技术虽能提升吞吐量,但需权衡深度与硬件复杂度,而现代CPU通过数据前推、分支预测等技术优化流水线性能。理解

2025-12-30 08:53:01 7661

原创 Mac常用快捷键与效率插件指南

本文介绍了macOS的快捷键配置调整与实用插件使用。主要内容包括:F1-F12功能键标准化设置、键盘键位适配调整(内置键盘与外接键盘)、F19虚拟功能键配置、输入法切换优化(解决输入法提示不显示问题),以及macOS基础快捷键使用技巧(如聚焦搜索、文件复制粘贴操作)。通过合理配置可提升Mac用户的操作效率,尤其适合从Windows转Mac的开发人员。文章还推荐了Karabiner-Elements等实用工具进行深度定制。

2025-12-29 08:58:54 2967

原创 浅谈传统并发编程的优化思路

本文探讨了并发编程中的性能优化理念与常见手段。文章首先分析了性能与可伸缩性的关联,指出优化本质是在有限资源下最大化效率,并列举了CPU、IO等资源密集型任务的识别方法。作者强调需要通过监控工具准确诊断任务类型,避免盲目增加线程数带来的额外开销。在可伸缩性方面,文章指出资源增加不一定提升性能,并通过单例模式的两种实现对比,展示了单线程优化可能破坏可伸缩性的案例。最后提出性能评估应基于基准测试,关注最差时间、平均耗时和可预知性三个指标,强调优化需要具体场景分析,避免过早优化带来的额外成本。文中还提供了开源项目m

2025-12-28 13:35:40 805

原创 浅谈Linux权限管理

明确上述ACL对应权限判定test具备读写权限后,最后在进行cgroup即硬件访问权限校验,和selinux(Security-Enhanced Linux一个限定服务进程最大限度减小系统服务进程可访问的资源)校验,只有着一切权限、安全规则校验都成功,自此,进程用户才能打开文件。ACL是针对文件一些更细粒度的访问权限控制,例如本例我们的info.log就给test用户配置的特殊的读写权限,对此我们可通过。这期间会经过重重函数调用,这里就不做展开,本质上就是携带文件名和需要的权限准备好,最终走到。

2025-12-26 08:48:19 965

原创 浅谈并发编程等待通知模型

本文深入探讨了并发编程中的等待通知模型,通过实现环形有界队列分析了三种同步方案:异常式、轮询式和条件等待式。异常式简单但用户体验差,轮询式优化了用户体验但存在性能问题。最终提出基于条件等待的优化方案,通过阻塞等待和精准唤醒机制,在队列非满/非空时自动通知对应线程,有效避免了轮询开销,实现了高效的状态依赖性管理。文章还提供了相关代码示例和实现思路,为开发者提供了实用的并发编程优化方案。

2025-12-21 13:55:05 1023

原创 浅谈池化技术的优雅关闭

本文探讨了线程池优雅关闭的技术实现,重点分析了强制关闭线程池可能导致的数据丢失问题。作者通过日志线程案例指出,直接中断线程会导致阻塞队列中的未处理数据丢失。针对这一问题,提出了基于原子化标识的优雅关闭方案:通过同步锁检查中断标识,确保中断时队列数据完整处理,同时避免线程长时间阻塞。该方法实现了线程中断的及时响应、资源安全释放和任务完整性保障,为线程池关闭提供了更可靠的解决方案。

2025-12-16 11:20:34 612

原创 Linux上IO性能问题的故障排除实践

本文介绍了Linux系统IO性能问题的通用排查方法。首先通过top指令查看CPU等待IO的占比(wa),若超过30%-40%则可能存在IO瓶颈。然后使用iostat -x 1检查磁盘利用率(%util)和IO等待时间(iowait),当这些指标异常时,说明磁盘存在性能问题。最后通过iotop -o定位具体的IO进程,分析其读写操作情况。作者还提供了一个Java多线程读写程序示例来模拟高IO负载场景,帮助读者理解排查过程。这套方法可以帮助开发者快速诊断系统IO性能问题,保持对系统指标的敏感度。

2025-12-12 09:48:55 733

原创 Linux 性能问题排查最佳实践

本文介绍了Linux系统性能排查的通用方法论和实践,重点针对I/O性能瓶颈、CPU飙升和偶发CPU飙升三大经典场景进行分析。文章首先详细讲解了系统巡检的基本流程,包括查看系统负载(uptime)、内核日志(dmesg)、虚拟内存(vmstat)、CPU亲和力(mpstat)、进程状态(pidstat)、内存使用(free)、I/O性能(iostat)和网络流量(sar)等关键指标。针对每个命令的输出结果,文章提供了详细的解读方法,帮助开发人员快速定位系统性能问题。考虑到读者主要为Java开发者,文中案例均采

2025-12-11 09:20:14 720

原创 Java并发编程中的死锁问题

Java并发编程中的死锁问题与解决方案 摘要:本文深入探讨Java并发编程中的死锁问题,从哲学家就餐案例出发分析死锁的四大必要条件(互斥、请求与保持、不可剥夺、循环等待)。通过实际代码示例展示锁顺序死锁和动态函数死锁两种典型场景,并给出对应的解决方案。文章还分析了死锁带来的饥饿、响应延迟和活锁等危害,提出通过统一锁获取顺序、随机重试机制等技术手段来规避死锁问题。最后介绍了使用JStack诊断死锁的方法,为Java开发者提供实用的死锁排查和预防指南。

2025-12-09 14:09:12 981

原创 基于arthas量化监控诊断java应用方法论与实践

应用系统监控也是软件研发中最重要的一环,从研发的角度来说,明确指出自己业务维度明确指出个人负责功能业务维度的系统监控指标,同时具备实时监控诊断的应对方法,是软件架构成功的重要的一环。笔者认为,一个健壮的系统运维监控体系是着重于强调量化且可感知观测的,在日常工作的对接中,我发现大量研发人员都有一种计算机文科化的趋势,小到应用程序指标调测,达到故障定位暴力迭代结合日志盲目推测。基于上述的说明,我们大体了解的监控诊断的一套理想架构,而本文将针对该架构进行演示和实践,按照。为方便与读者交流,现已创建读者群。

2025-12-08 09:01:44 540

原创 面向后端开发的故障排查方法论

本文分享了后端开发中故障排查的通用方法论。作者以修复开源项目Nightingale对ES9数据源兼容性问题为例,详细阐述了问题解决流程:1)拆解任务为可执行的小目标;2)通过调试定位问题源头;3)绘制执行流程图分析故障;4)采用最小成本改造方案;5)进行回归测试验证。文章强调将复杂问题拆解为具体步骤的重要性,并总结出通用工作方法:问题拆解、严格执行、精简解决、完整复盘。该方法论不仅适用于技术问题排查,也可推广到其他工作场景。

2025-12-05 10:01:10 579

原创 浅谈Linux基于信号处理中断的哲学

本文从操作系统角度探讨了进程中断和异常的处理机制。通过一个除法运算异常的案例,说明操作系统如何通过中断描述符表(IDT)定位异常处理函数,并投递信号(如SIGFPE)到进程信号队列。文章对比了中断(异步触发)与异常(同步触发)的区别,并分析了Linux如何优化传统Unix信号机制,通过64位信号表避免信号丢失问题。最后描述了内核态返回用户态的过程,完成中断处理的闭环。

2025-11-28 09:13:18 885

原创 深入源码解析synchronized关键字

摘要 本文深入剖析了JDK8中synchronized关键字的底层实现机制。通过ObjectMonitor结构体,详细阐述了线程竞争锁资源的流程:线程通过CAS获取锁,失败后自旋或进入阻塞队列;锁重入通过_recursions计数;调用wait的线程进入_WaitSet队列等待唤醒。文章结合源码分析了enter方法的上锁步骤,包括CAS竞争、自旋优化、锁升级等关键环节,并配以流程图辅助理解。最终指出synchronized通过CAS竞争和等待通知机制实现高效同步,在竞争激烈时主动挂起线程以减少CPU开销。

2025-11-25 10:13:41 30

原创 硬核安利一个监控告警开源项目Nightingale

本文介绍了夜莺(Nightingale)日志监控告警工具的强大功能,通过安装配置和Elasticsearch数据源对接,演示了如何设置日志采集和告警规则。作者详细展示了从二进制安装、数据源配置、日志查询到告警规则调测的全过程,并通过模拟错误日志触发告警进行验证。文章还解释了告警规则中持续时长等关键参数的作用,帮助读者全面了解夜莺的日志监控告警机制。

2025-11-11 09:23:58 850 1

原创 聊聊我基于dict优化mini-redis数据性能这件事

本文介绍了mini-redis项目中字典数据结构的设计与重构过程,重点讲解了字典创建和键值对插入的实现细节。作者通过分析redis底层优秀的数据结构设计,将mini-redis底层数据库重构为dict字典结构。文章详细描述了字典的核心数据结构定义,包括哈希表、键值对等核心组件的实现,并深入讲解了字典初始化、键值对插入的算法逻辑,特别是redis优化的哈希取模位运算实现。通过代码示例和注释说明,帮助读者更好地理解这个开源项目的设计思路和实现细节。

2025-11-05 09:04:29 734

原创 来聊聊vibe coding

文章摘要:本文探讨了AI时代下的新型编程范式"vibe coding",通过与传统编程的对比分析其特点和优势。作者指出vibe coding将编程重心从代码实现转向功能设计,开发者可通过自然语言与AI协作完成开发。文章详细介绍了vibe coding的工作流程(设计-提示-生成-测试-优化阶段)和核心提示词理论,强调明确需求、具象化场景构思和MVP原则的重要性。同时指出vibe coding与传统编程应是互补关系,前者适合快速原型开发,后者在架构设计等复杂场景仍具优势。文末作者分享了自己

2025-11-03 14:08:01 1077

原创 从micrometer计量器角度快速上手promQL

监控的目的本质上是针对指标的趋势分析确保能够对系统有一个准确的决策优化思路,这其中就有一个比较经典的长尾问题,以我们监控接口耗时为例,1min内平均耗时为200ms,但是偶发出现5s,这种偶发波动对于rate等函数进行平均化之后就会被削平,从而无法及时的发现偶发飙升的数值进而无法及时发现问题,这种情况也就是长尾问题。从名字即可了解这个计量器本质上是一个只增不减的计数器,它是有状态的(即依赖于历史的值),从使用方法上来看,它是单调递增的且上界是不可确定的,所以使用。

2025-10-28 09:44:56 809

原创 Java监控度量Micrometer全解析

如下图,我们会将一个大文件进行切片,然后调用文件上传接口,将分片base64数据、源文件名称、分片大小、分片个数、索引号传到服务器上。这个是Spring框架自带的一个类,便于用户更好操作网络传输的文件,这个类为我们提供了很多便捷操作的API。getName() : 获取文件名 getOriginalFilename() : 返回客户端系统中原始文件名。getContentType() : 获取文件内容类型。isEmpty() : 判断文件是否为空。getSize() : 获取文件大小,以字节为单位。

2025-10-20 08:35:55 13207 1

原创 SpringBoot应用埋点监控最佳实践

本文介绍了基于Spring Boot应用的监控埋点方案,通过Prometheus采集应用指标数据,并使用Grafana进行可视化展示。主要内容包括: 架构说明:Spring Actuator暴露指标 → Prometheus采集 → Grafana渲染 Spring Boot集成步骤:添加Actuator和Prometheus依赖,配置端点暴露 Prometheus安装与配置:设置拉取目标和监控指标路径 Grafana部署与数据源配置:连接Prometheus并验证数据源可用性 该方案可实现生产环境应用指标

2025-10-16 01:49:53 782

原创 进程之间是如何通信的

本文深入探讨了进程间通信的几种方式:基于信号通知(如Linux的kill命令)、socket套接字(通过环回口传输)、匿名/命名管道(父子进程通信)、内核消息队列(可靠传输)和共享内存映射(需信号量同步)。文章分析了每种方式的优缺点,并通过代码示例展示了消息队列和共享内存的实现。这些通信理念不仅适用于进程,也适用于线程间交互。作者SharkChili是Java开发者,维护开源项目mini-redis,欢迎关注公众号获取更多技术交流。

2025-10-07 16:28:50 1068

原创 深入理解操作系统中的线程

本文深入探讨了线程的设计理念与调度机制。文章首先介绍了线程作为轻量级进程的诞生背景,相比传统进程,线程创建效率更高(快10-100倍),能有效提升程序执行效率。通过字处理软件的多线程应用场景,阐释了多线程如何避免单进程阻塞,充分利用CPU时间片。 在技术实现层面,文章详细解析了线程的数据结构(程序计数器、寄存器、堆栈)和Linux下的C语言线程创建示例(pthread_create/join等)。同时探讨了线程调度策略,包括yield让出CPU和join等待线程完成等机制。最后剖析了线程栈的调用原理(LIF

2025-10-05 20:24:23 685

原创 详解进程的创建过程

从宏观的角度来看,fork调用本质就是创建一个和父进程(以本例就是init进程)一样的内存映像、环境字符串和打开的文件,然后子进程执行其他调用时修改内存映像从而创建一个新的程序。理论上,在进程子进程创建的复制是必须独立且完整的进行分配的,设计者考虑到这种复制的耗时和且高昂的操作,于是提出了一种写时复制的优秀设计理念,即初始化创建子进程时页表都指向父进程的内存页,并标识为只读,当子进程需要修改对应内存页修改数据时,则通过写时复制的方式创建一个全新的副本进行修改操作,从而保证高效且节省RAM资源。

2025-10-04 00:09:08 712

原创 深入理解操作系统进程的内核态调用

本文探讨了操作系统内核态调用的工作机制,以文件读取为例,详细解析了进程如何通过陷阱指令(如syscall)进入内核态完成I/O操作。文章首先介绍了操作系统的基本职责,即资源管理和应用程序抽象。随后以C语言文件读取程序为例,剖析了open和read函数的内核调用过程,包括寄存器参数传递、陷阱指令触发、内核态切换和结果返回的完整流程。最后解释了内核态调用的设计原因,包括安全考虑和地址随机化机制。通过本文,读者可以深入理解操作系统内核调用的工作原理,为排查生产问题提供理论基础。

2025-10-02 22:35:32 723

原创 自底向上了解CPU的运算

首先我们需要了解一下科学计数法,例如1230000化为这种就是科学计数法,即整数部分只有一个数字,像就不是科学计数法了同理上文,8.625得到的二进制值为1000.101,参照十进制的计算方式我们也可以得出科学计数法结果为(小数点向左移动三位变小了,所以需要*2(^3)

2025-08-31 21:16:05 1765

原创 来聊聊Mac系统中的程序坞

本文详细介绍了Mac OS中的程序坞(Dock)功能和使用技巧。程序坞分为快速启动栏、近期常用程序和下载/废纸篓三部分,用户可自定义快速启动栏内容。文章还讲解了程序最小化与关闭的区别、程序坞隐藏/放大设置,并建议Mac用户不必频繁关闭常用程序,因系统有良好的内存管理。对于Windows转Mac的用户,这些内容能帮助快速适应Mac的使用习惯。作者SharkChili是一位Java开发者,文末提供了其开源项目和联系方式。

2025-07-08 09:49:39 1251

原创 Java并发编程中高效缓存设计的哲学

本文基于并发编程和算法中的哈希取模、锁分段、异步化、原子化等核心设计理念,逐步演进设计一个高效的缓存工具。初始版本采用同步锁实现缓存,但性能较差(5000并发耗时26765ms)。改进为ConcurrentHashMap实现锁分段后,性能显著提升(耗时2022ms)。随后引入FutureTask进行异步化处理,避免重复计算(耗时1321ms)。最后通过原子化操作彻底解决并发问题,最终实现了一个高性能缓存方案。作者还提供了开源项目mini-redis和联系方式供读者交流学习。

2025-06-24 11:16:24 1005 1

原创 Java并发编程哲学系列汇总

本文整理了Java并发编程知识体系,分为基础、进阶和实践三部分。基础篇涵盖线程池、JUC锁、CAS原子类、final关键字、并发容器和流程控制工具等核心概念;进阶篇深入解析AQS、synchronized、volatile、内存模型、ThreadLocal等底层原理;实践篇则聚焦线程池调优、CompletableFuture应用、死锁处理等实战经验。这些内容从基础理论到高级应用,为开发者提供了全面的Java并发编程学习路径和技术参考。

2025-06-03 00:53:36 2942 1

原创 Nacos源码深度解析系列文章导航

本文是作者SharkChili对Nacos源码分析系列文章的导航性总结,包含6篇核心文章链接,内容涵盖Nacos源码环境搭建、服务注册原理、订阅流程、变更推送机制以及SpringCloud负载均衡器解析。作为Java开发者和Java Guide项目维护者,作者提供了公众号和开源项目mini-redis的访问途径,并开放读者交流群入口。文章将持续更新Nacos相关源码解析内容,欢迎读者反馈交流。

2025-05-31 21:03:26 371

原创 深入解析SpringCloud的负载衡器Loadbalancer

本文探讨了Spring Cloud Loadbalancer在集成Nacos后可能存在的服务调用问题及解决方案。作者首先介绍了项目架构及负载均衡算法配置,重点分析了Loadbalancer如何通过Caffeine缓存机制初始化服务实例缓存。 当服务消费者发起调用时,Loadbalancer会先检查缓存,若不存在则通过DiscoveryClientServiceInstanceListSupplier从Nacos获取服务列表并缓存。文章还指出了缓存过期导致的问题,并提出"缓存预热+心跳检测&quot

2025-05-30 09:16:34 859

原创 Nacos服务变更推送流程全解析

摘要 本文以Nacos 2.3.x为例,分析其服务下线实时推送机制。通过搭建Nacos注册中心架构,包含2个服务提供者和1个消费者,演示了9002端口服务提供者优雅关闭流程:服务提供者通过Spring上下文关闭触发shutdown hook,调用NacosAutoServiceRegistration的deregister方法发起RPC下线请求。Nacos服务端收到请求后,通过事件驱动模型(包括InstanceRequestHandler、NotifyCenter、NamingSubscriberServi

2025-05-29 09:05:41 2437

原创 Nacos服务订阅流程全解析

Nacos服务订阅流程解析 本文基于源码分析了Nacos客户端订阅服务的完整流程。主要内容包括: 客户端发起订阅: 通过NamingService.subscribe()方法发起订阅请求 代理类NamingClientProxyDelegate处理请求,先检查本地缓存,未命中则发起RPC请求 服务端处理订阅: 服务端通过grpcCommonRequestAcceptor接收请求 使用SubscribeServiceRequestHandler处理订阅请求 返回订阅服务的实例信息 客户端处理响应: 将实例信息

2025-05-27 09:31:11 1705

原创 Flink流处理基础概论

以管理员身份运行下方工具创建数据库定制数据库创建数据库直接下一步所有用户使用同一口令配置密码直接下一步8. 直接下一步9. 直接下一步配置字符集16位的gbk下一步完成确认...

2025-05-26 20:00:45 1475

原创 Flink核心概念小结

我们都知道并行流的操作都是基于多线程的,有了多线程自然就会出现互斥和同步问题,所以一旦你使用并行流操作同一个数据时,很可能会造成数据错误的问题。

2025-05-26 12:17:19 2202 1

原创 基于IDEA完成Git指定分支回退

本文介绍了在IDEA中回滚Git分支的操作步骤。首先通过Reset指令强制切换到正确的历史分支(使用hard模式),然后使用命令行git push -f强制提交到远程仓库,从而解决Push Rejected报错问题。最终通过提交记录验证了错误分支的清理效果。该方法适用于需要撤销多个错误提交并回退到正确版本的情况。作者SharkChili还提供了个人开源项目mini-redis和公众号信息,方便读者交流。

2025-05-26 08:43:16 1601

原创 Spring Cloud Alibaba服务调用源码调试环境搭建

本文记录了基于Spring Cloud Alibaba搭建Nacos服务提供者与消费者的过程。作者首先通过Git拉取指定版本源码,配置Maven并编译项目。随后创建nacos-provider子模块,引入核心依赖(如服务注册、配置中心、负载均衡等),并启用服务发现功能。架构上采用单机Nacos作为注册中心,两个服务提供者(9001/9002端口)和一个消费者(8080端口)实现负载均衡调用。文中详细说明了版本控制、依赖配置等关键步骤,为开发者调试Nacos源码提供参考。

2025-05-26 08:40:07 1862

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除