- 博客(294)
- 收藏
- 关注
原创 注册中心宕机后,RPC调用还能成功吗?主流框架实测级分析
场景Consul+任意RPC注册中心刚宕机(缓存未过期)100%成功100%成功100%成功100%成功100%成功宕机30分钟+(缓存失效,服务无变动)95%+成功(少量警告)95%+成功(少量警告)95%+成功(少量警告)90%+成功(无文件缓存)98%+成功(健康检查筛选)宕机30分钟+(缓存失效,服务有变动)部分失败(10%-20%)部分失败(10%-20%)部分失败(10%-20%)部分失败(30%-50%)少量失败(5%-10%)
2026-02-08 18:43:59
493
1
原创 SpringCloud从入门到上天:Nacos做微服务注册中心(二)
url中真实的ip地址换成应用名称,RestTemplate可以动态给我们进行替换。应用服务中会进行实例缓存,将注册中心的数据进行同步和实时更新。这样的话,RestTemplate默认就带有了负载均衡功能。到这我们已经实现了基于注册中心的远程调用:http版本的。2:如果没有调用过:缓存中没有,需要第一次进行,则必须去注册中心拿地址。如果注册中心宕机,远程过程调用还能成功吗?1:如果调用过的接口:缓存中已经拿到过地址列表。基于此,我们修改负载均衡的代码。
2026-02-08 18:16:54
90
原创 Kafka分区备份详解:每台物理机都会备份吗?(附实操避坑)
回到最初的问题:Kafka分区备份不是每台物理机都会备份,核心取决于两个因素——Broker节点数量和副本因子。用三句话总结核心要点,帮大家快速记住:分区备份的最小分配单位是Broker节点,不是物理机,同一个分区的不同副本必须分布在不同Broker。只有“多Broker节点 + 副本因子>1”,才能实现跨物理机的分区备份,避免单点故障。生产环境推荐“3台物理机+3个Broker+副本因子=3”,既能实现高可用,又能保证负载均衡。
2026-02-08 11:15:35
12
原创 Kafka从入门到上天系列第三篇:基础架构推演+基础组件图形推演
单节点kafka broker,面临很多生产者和访问者的时候,大量的请求和访问大概率会因为吞吐量过大。产生io热点问题,结果就是:这个单一节点成为整个分布式系统的性能瓶颈和节点隐患。进而降低分布式系统的可用性和稳定性。如果数据还没有写入到磁盘文件,而导致数据丢失。当前有两种方式,一种是横向拓展、纵向拓展。横向拓展:单点改为集群。多个节点共同承载。降低单点故障带来的故障纵向拓展:增加单节点服务器配置。比如:使用io效率更好的固态硬盘、切换千兆网卡、切换更优秀的Cpu、增大节点内存等等。
2026-02-08 11:10:23
48
原创 Kafka从入门到上天系列第二篇:直击生产者和消费者
输出会包含分区数、副本数、ISR(同步副本)、leader 分区等关键信息。命令行,生产者和消费者当然也是可以通过命令行操作的,但是这样真的有意义吗?(默认开启),否则仅标记为删除,不会实际删除。
2026-02-08 01:02:38
191
1
原创 CentOS7 彻底卸载所有JDK/JRE + 重新安装JDK8(实操完整版,解决kafka/jps报错)
本文核心解决「JDK/JRE版本混乱、安装不完整导致的Java相关命令报错」,全程实操可复现,步骤逻辑:卸载清理→重新安装→配置环境→验证使用。所有命令均已整理好,可直接复制执行,新手无需担心踩坑。如果部署的是其他Java项目(如Tomcat、SpringBoot),安装配置完成后也可通过上述验证步骤确认JDK可用性。若遇到其他报错,可在评论区留言,看到会及时回复。
2026-02-07 23:13:17
881
2
原创 Kafka从入门到上天系列第一篇:kafka的安装和启动
kafka是由Scala和Java技术栈编写分布式的、高可靠、高吞吐、高可用、可伸缩的消息中间件。最常适用于分布式系统进行大批量数据交换。
2026-02-06 17:10:35
686
1
原创 Linux从入门到封神第三篇:tail命令全面详解
Linux系统中,ls命令是最基础、使用频率最高的命令之一,没有之一。它的核心作用是列出目录下的文件和子目录信息。
2026-02-06 12:39:29
361
原创 Flink从入门到上天系列第一篇:搭建第一个Flink程序
Flink计算模型流计算微批处理时间语义事件处理、处理时间处理时间窗口多、灵活少、不灵活(窗口必须是批次整数倍)状态有没有流式SQL有没有。
2026-02-06 11:59:36
318
1
原创 Flink CDC从入门到上天系列第一篇:Flink CDC简易应用
术语解析: CDC:表示变更数据捕获技术技术本质: 通过捕获数据库变更事件(增删改),并按照发生顺序记录下来。实现数据同步应用场景: 广泛应用于数据仓库、实时分析、数据同步等场景。
2026-02-06 09:22:37
591
1
原创 Linux从入门到封神第二篇:tail命令全面详解
在CentOS运维工作中,tail命令是高频刚需工具,核心用于查看文件尾部内容、实时监控日志,不管是日常排查问题还是线上运维,都离不开它。
2026-02-05 16:33:01
305
1
原创 Linux从入门到封神第一篇:如何同步Linux操作系统的时间
本人Linux操作系统Centos7。某天查看日志的时候发现日志与真实时间有严重差异,接下来我们做一下时间同步。
2026-02-05 16:09:15
65
1
原创 深度解析DolphinScheduler核心架构:搭建高可用Zookeeper集群
该节点出现Leader 独有的组件(LearnerHandler)+ Leader 独有的主动同步行为 + 接收 Follower 的选举确认 ACK,这三个特征同时满足,是判定其为 Leader 节点的铁证。
2026-02-05 15:56:06
72
原创 深度解析DolphinScheduler核心架构:DolphinScheduler集群部署说明
集群模式下,可以配置多个Master和多个woker通常来讲,2-3个Master若干个Worker是相对合理的。
2026-02-05 10:56:10
72
原创 刷爆 Java 基础!1000 道经典面试题精解第一篇【序列化】
自定义序列化 / 反序列化的实现方式在实现接口的类中,手动重写和方法在方法内优先调用执行默认序列化逻辑;追加自定义逻辑(如敏感数据加密、临时字段赋值、兼容旧版本数据等)。// 序列化ID,保证兼容性// 敏感字段,默认不序列化,自定义处理// 自定义序列化// 执行默认序列化:写入username// 自定义逻辑:密码加密后写入// 自定义反序列化// 执行默认反序列化:读取username// 自定义逻辑:读取加密密码并解密// 模拟加密/解密工具方法。
2026-02-04 23:28:24
27
原创 MySQL从入门到精通系列:InnoDB记录存储结构
InnoDB的数据存储到磁盘上。真正处理数据的过程发生在内存中,所以需要把磁盘中的数据加载到内存中。如果是处理写入或修改请求,还需要把内存中的内容刷新到磁盘上。然而读写磁盘的速度非常慢,与读写内存差了几个数量级。存储引擎需要一条一条地把记录从磁盘上读出来么?不,那样会慢死。将数据划分为若干个页,以页作为磁盘和内存之间交互的基本单位。InnoDB中页的大小一般为16KB。也就是在一般情况下,一次最少从磁盘中读取16KB的内容到内存中,一次最少把内存中的16KB内容刷新到磁盘中。
2026-02-04 19:38:13
277
原创 SpringCloud从入门到上天:Nacos做微服务注册中心(一)
本文介绍了服务注册与发现的基本概念,并详细说明了Nacos的安装部署过程。服务注册指微服务启动后向注册中心登记信息,服务发现则是调用时从注册中心获取目标服务位置。Nacos是阿里巴巴提供的服务管理平台,支持服务发现和配置管理。安装步骤包括下载Nacos 2.4.3版本、解压、配置单机模式、安装JDK 1.8以及启动服务。启动成功后,可通过http://[IP]:8848/nacos访问控制台。整个流程实现了Nacos作为注册中心的基础部署。
2026-02-04 16:51:31
86
原创 流量入口Nginx动态发现K8s Ingress Controller实操指南
其实集群外Nginx动态发现K8s Ingress Controller,核心就是解决“动态IP适配”的问题,不用追求最复杂的方案,适合自己公司架构、运维成本低的才是最好的。我公司最终选的是方案三,3个工作节点,配置简单,后续节点扩容时,对Nginx配置无感,实测Pod漂移、扩缩容时,流量完全无中断,稳定性拉满。如果你们在配置过程中遇到问题(比如标签匹配错误、网络不通、健康检查失败),可以在评论区留言,我看到会第一时间回复,帮大家避开坑~
2026-02-03 22:44:01
502
原创 SpringCloud超高质量面试高频题300道题
后端从单体架构升级到集群架构,核心解决了简单来说,集群架构让系统从 “单台机器扛所有” 变成 “多台机器一起扛”,从根本上解决了单体架构在场景下的核心痛点,为业务后续的规模化增长打下基础。
2026-02-03 18:17:59
57
原创 NodeJs从入门到上天:什么是Node.js
Node.js是基于Chrome V8引擎的JavaScript运行时环境,主要用于服务器端编程和前端工程化。它支持编写后端程序(如数据接口)并提供网页资源,同时也是前端工具链(如打包、转换工具)的基础。与浏览器环境不同,Node.js没有BOM和DOM。安装后可通过命令行执行JS文件(如node xxx.js)。学习Node.js为掌握Vue/React等框架奠定基础。
2026-02-03 16:04:20
128
1
原创 吃透分布式与微服务:3分钟分清区别,再也不怕面试被问!
要区分二者,首先要明确各自的本质——一个是“思想理念”,一个是“落地实践”,定位完全不同。1. 联系:微服务是分布式的“子集”,是分布式思想的标准化落地;二者目标一致,技术底座相通,都为了解决单体架构的痛点。2. 区别:分布式是“思想”(无规范、粒度灵活、成本低),微服务是“实践”(有规范、粒度极细、成本高);所有微服务都是分布式,但分布式不一定是微服务。3. 选型建议:中大型系统、简单解耦→分布式;大型/超大型系统、多团队并行、极致解耦→微服务;小型系统→单体架构(无需过度设计)。
2026-02-03 11:45:55
550
原创 深度解析DolphinScheduler核心架构:去中心化调度的设计与实践
Apache DolphinScheduler是一款分布式任务调度平台,采用去中心化架构设计,通过多Master和多Worker集群实现高可用与高并发。其核心组件包括MasterServer(调度核心)、WorkerServer(执行载体)、Registry(协调中心)、ApiServer/UI(交互入口)和AlertServer(告警服务)。平台支持多种任务类型和负载均衡算法,提供可视化工作流编排和实时监控告警功能。相比传统调度系统,DolphinScheduler有效解决了单点故障问题,支持动态扩展,广
2026-02-02 15:29:07
676
1
原创 LVS、F5、SLB负载均衡全解析:选型与实战指南
本文对比分析了LVS、F5和SLB三种主流负载均衡方案。LVS是开源四层负载均衡,性能优异但需专业运维;F5作为商用硬件,提供全栈负载均衡和安全防护,适合高要求场景;SLB是云托管服务,弹性灵活且运维简单。文章从产品类型、性能、成本等维度进行详细对比,并给出选型建议:开源架构选LVS,核心业务选F5,云原生场景选SLB。实际应用中,多层级组合方案(如LVS+Nginx)往往能实现最优效果。
2026-01-27 14:32:54
707
1
原创 企业级K8s集群两层Nginx架构实战:Ingress Controller独立部署与动态伸缩全解析
本文探讨了企业级K8s集群入口流量架构设计,提出"外层Nginx负载均衡+内层独立IngressController"的双层架构方案。该方案通过分层解耦实现流量接入、路由转发和安全防护的精细化管控,外层Nginx负责全局流量接入和安全防护,内层IngressController专注应用级路由分发。文章详细分析了二者的核心差异、多应用独立部署的价值,并提供了完整的动态伸缩配置方案,包括命名空间隔离、Deployment配置、Service对接等关键实现。该架构已在多个ERP项目中验证,能有
2026-01-27 10:24:46
608
原创 K8s核心流量管理:Ingress与Service深度解析及实战对比
一句话概括二者的关系:Service是K8s流量管理的“基础层”,解决Pod的稳定访问问题;Ingress是“高级层”,基于Service实现外部流量的精细化管控。实战中,需根据服务类型、访问需求,合理搭配二者,构建高效、可靠的K8s流量架构。如果需要Ingress Controller的部署教程、高级配置技巧(如限流、SSL配置),可以留言交流,后续会补充对应的实操内容。
2026-01-25 14:14:55
610
原创 详解kubectl get replicaset命令及与kubectl get pods的核心区别
本文详细解析了Kubernetes中kubectl get replicaset命令的用法,并与kubectl get pods进行对比。replicaset作为Pod的管理控制器,关注副本数等策略层面信息,而pods则展示具体容器实例的运行状态。文章介绍了replicaset命令的常用形式、输出字段解读及核心使用场景,强调了两者在管理层级、关注重点上的差异。最佳实践建议先检查replicaset确认策略生效,再查看pods定位具体问题,二者配合使用能有效提升K8s集群运维效率。
2026-01-24 10:58:34
853
原创 彻底搞懂JavaScript深拷贝与浅拷贝:从原理到实战避坑
本文深入讲解JavaScript中的深浅拷贝机制。首先解析JS数据类型的存储差异:基本类型存储在栈内存,拷贝时直接复制值;引用类型在栈存引用地址,堆存实际值,默认浅拷贝会共享内存。接着详细介绍浅拷贝的实现方式(扩展运算符、Object.assign等)及适用场景,以及三种深拷贝方法:JSON.parse/stringify的简易方案、手动递归实现的进阶方案和lodash.cloneDeep的生产方案。文章最后给出选型建议:单层结构用浅拷贝,多层嵌套需深拷贝,特殊场景推荐使用成熟库。通过理解存储机制和实际案例
2026-01-22 13:56:53
775
原创 彻底搞懂K8s Pod内存请求与限制:从配置到实战避坑
摘要: Kubernetes中Pod内存请求(MemoryRequest)和内存限制(MemoryLimit)是资源管理的核心概念,二者功能不同但常被混淆。内存请求是调度依据,确保节点有足够资源;内存限制是运行时约束,防止内存溢出(OOM)。配置时需遵循请求≤限制,单位避免混用。生产环境需监控内存使用,合理设置缓冲(如限制为峰值的1.2~1.5倍),并避免请求=限制导致的资源浪费。常见问题包括Pod因请求过高无法调度、限制过低触发OOM等,解决方案包括调整配置、优化代码或扩容节点。通过理解调度逻辑(CGro
2026-01-22 11:04:51
597
原创 吃透kubectl get pod -o yaml:参数全解析与实战指南
只展示Pod名称、镜像、资源限制# 结合标签筛选,只看prod环境的Pod其实命令的核心逻辑很简单,关键在于掌握-o参数对应的不同输出格式,以及辅助参数的灵活搭配。日常运维中,不用死记硬背所有参数,记住“场景对应格式”即可:排查问题用yaml,快速查看用wide,脚本处理用jsonpath,批量操作用name。多在集群中实操几次,自然就能形成肌肉记忆,真正做到“玩转”这条基础命令。最后提醒一句:K8s命令的参数都可以通过查看,遇到忘记的参数时,直接查帮助文档最靠谱~
2026-01-22 10:50:17
889
原创 K8s Nginx Pod 出现 CrashLoopBackOff?从配置排查到彻底解决
本次故障本质是配置文件的语法疏漏和逻辑不匹配,看似都是细节问题,却在实操中导致了Pod反复崩溃,这类问题在新手运维中尤为常见。启动命令需严谨:Shell命令(如sleep、nginx)的语法、格式必须规范,重点注意参数与命令的空格分离、关键字拼写,同时确保命令能触发前台进程——K8s容器的生命周期与前台进程强绑定,后台进程会直接导致容器退出。探针配置要适配业务逻辑需根据容器实际启动时长合理设置,过短会导致误判重启,过长则无法及时检测容器故障;
2026-01-21 21:52:23
946
原创 K8s修改Pod的Command/Args参数报错?这篇实操指南帮你搞定
1. K8s Pod创建后,Command/Args属于不可修改字段,直接修改会触发更新限制报错,需通过“删除旧Pod+重建新Pod”解决。2. 临时调试场景可使用上述方法,生产环境优先采用Deployment管理Pod,支持参数平滑更新,提升运维效率。3. 日常操作中,建议先检查YAML文件中的参数拼写、格式,避免因低级错误导致Pod创建失败或需要重复修改。如果遇到其他K8s Pod更新相关问题,欢迎在评论区交流讨论!
2026-01-21 20:04:37
893
原创 JavaScript 七种继承方式全解析(从基础到实战最优解)
JavaScript继承机制基于原型链实现,不同于传统面向对象语言。本文系统介绍了7种继承方式:1)原型链继承(方法复用但引用类型共享);2)构造函数继承(属性独立但无法继承原型方法);3)组合继承(综合前两者优点但调用两次构造函数);4)原型式继承(基于对象创建新对象);5)寄生式继承(增强原型式继承);6)寄生组合式继承(ES5最优方案);7)ES6 Class继承(语法糖)。实际开发推荐使用ES6 class或寄生组合式继承,前者简洁规范,后者性能最优。理解各种继承方式的优缺点有助于在项目中做出合适选
2026-01-21 15:31:52
487
原创 JavaScript字符串核心方法实战解析:length、split、substring、startsWith
以上四个字符串成员覆盖了“长度获取、拆分、截取、前缀校验”核心场景,整理对比如下,方便快速选型:成员核心功能是否修改原字符串关键注意点length获取长度只读属性,不修改扩展字符占2个长度单位split()字符串转数组不修改首尾分隔符生成空元素截取子串不修改不支持负数索引,自动交换参数前缀校验不修改区分大小写,空字符串返回true。
2026-01-20 10:25:39
716
原创 吃透JavaScript数组三大常用方法:find、every、join实战解析
find方法是 JavaScript 数组查找的“利器”,尤其适合单一目标元素的精准查找,代码简洁、性能高效,在实际开发中可广泛替代传统for循环和forEach(forEach 无法中途终止遍历)。掌握其语法、返回值规则及避坑点,能大幅提升数组操作效率。
2026-01-20 10:03:10
322
原创 Maven 依赖作用域实战避坑指南
摘要:本文分析了Maven项目中依赖作用域配置的常见误区及解决方案。重点指出三类典型错误:滥用compile作用域导致包体积臃肿、误用runtime作用域引发编译错误、以及SpringBoot项目中给starter依赖添加多余作用域。针对每个问题提供了具体解决方法和代码示例,并总结了不同作用域的核心使用原则(compile/test/provided/runtime)。最后给出依赖树分析、产物校验和IDE提示等实战排查技巧,帮助开发者合理配置依赖作用域,避免类找不到和依赖冲突等问题。(149字)
2026-01-17 22:24:26
783
原创 一篇文章看懂 spring-boot-starter-web 的 POM 配置与 compile 作用域
本文分析了SpringBoot项目中spring-boot-starter-web的POM文件中<scope>compile</scope>配置的正确性。该配置完全合理,因为compile是Maven默认作用域,适用于项目全生命周期(编译、测试、运行)。文章对比了不同作用域的适用场景,强调compile作用域完美匹配Web核心依赖需求,并指出显式声明可提升配置可读性。通过解析,帮助开发者更深入理解Maven依赖管理和SpringBoot配置。
2026-01-17 22:22:21
617
MySQL查询顺序问题
2023-02-17
HotSpot虚拟机当中的元空间到底是包含了原有的方法区中的哪些数据呢?
2023-02-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅