自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

几十年资深高级架构师,技术专家的技术笔记。专注C、Java、Python、微服务、云原生、AI工程化及高并发系统分布式架构实战,分享源码剖析、性能调优与架构治理经验。

记录从底层OS到JVM到K8s部署的全栈实践,涵盖Spring Cloud、大数据、车联网及国产化适配、嵌入式,AI大模型应用。沉淀发明专利、调优案例与团队管理心得,助力开发者成长。

  • 博客(1344)
  • 资源 (13)
  • 收藏
  • 关注

原创 java 8 变量区间比较封装工具类

本文介绍了一个生产级的Java区间比较工具类RangeUtils,支持多种数据类型(int/long/double/BigDecimal/Date/String等)和区间判断方式(闭区间/开区间/半开半闭区间)。工具类提供null安全处理、对象字段提取比较、集合过滤等功能,采用泛型和链式调用设计,具有清晰的API命名和良好的复用性。使用示例展示了数值比较、日期范围校验、集合过滤等常见场景,能满足95%以上的区间比较需求。

2026-08-08 02:46:33 24

原创 java 8 变量区间比较

本文介绍了Java8中变量区间比较的实现方法。针对数值、日期和字符串三种数据类型,分别展示了使用逻辑运算符、compareTo方法及isBefore/isAfter等方式进行区间判断的代码示例。文章建议将区间比较逻辑封装为工具类以提高复用性,并强调了边界条件处理、空值检查等注意事项,特别提醒BigDecimal比较需使用compareTo而非equals。通过优化代码结构和提取独立方法,可显著提升程序可读性和可维护性。

2026-08-08 02:40:08 33

原创 Excel 构建复杂数据分析模型:财务场景实战指南

Excel数据分析模型通过数据清洗、计算建模和可视化呈现,将原始数据转化为决策依据。以财务BP为例,使用PowerQuery合并订单、发货、开票、收款数据,通过函数计算状态和账龄,结合数据透视表生成动态报告,实现销售全流程监控。Excel可构建贷款还款计划、NPV计算等财务模型,帮助财务人员从核算转向分析,提供数据驱动的决策支持。进阶学习包括函数、PowerQuery和动态控件,目标是构建能自动响应业务变化的决策系统。

2026-08-07 09:49:24 128

原创 Excel 公式全面介绍与详细使用指南

Excel公式使用指南摘要(147字) Excel公式以等号(=)开头,包含运算符、单元格引用、函数和常量。核心函数包括:数学类(SUM/AVERAGE)、逻辑类(IF/AND)、查找类(VLOOKUP/XLOOKUP)、文本类(TRIM/CONCAT)和日期函数。掌握三种引用方式(相对/绝对/混合)和数组公式可提升效率。常见错误如#N/A/#DIV/0!可通过IFERROR处理。推荐使用名称定义、公式求值工具调试,建立个人公式库。新版Excel支持XLOOKUP、FILTER等动态数组函数,建议通过模板学

2026-08-07 08:27:28 106

原创 word 设置带上页码

本文提供了Word文档页码设置的全面指南:1. 基础操作:通过「插入」-「页码」快速添加页眉/页脚页码,支持底部、顶部、页边距等位置选择;2. 格式自定义:可设置数字样式、起始页码(如从第5页开始)或添加章节编号;3. 分节处理:用「分节符」实现封面/目录无页码而正文从第1页开始(需断开节间链接);4. 常见问题:包括页码删除、样式修改及"第X页共Y页"等文本编辑技巧。文中通过表格总结了不同需求的对应解决方案,特别强调分节符和"链接到前一节"功能对复杂排版的关键作用。

2026-08-07 08:00:41 4

原创 BeanUtil.copyProperties(weighBillRecord, existRecord, CopyOptions.create().setIgnoreNullValue(true))

Hutool的BeanUtil.copyProperties方法通过CopyOptions参数实现精细属性拷贝控制。文章重点介绍了使用CopyOptions.create().setIgnoreNullValue(true)配置,实现仅拷贝源对象非空属性的功能,避免覆盖目标对象现有值。该方法适用于数据更新、对象合并等场景,支持忽略空值、错误处理、指定忽略字段等配置,但需注意浅拷贝特性和JavaBean规范要求。这种用法能有效防止数据库数据被意外清空,是安全高效的对象属性更新方案。

2026-08-06 14:53:58 176

原创 feign 调用 如果 服务返回有 n个字段 ,客户端调用 响应 对象中只有n-1 个字段

摘要:Feign调用中,客户端与服务端字段数量不一致时默认不会报错。若服务端返回多余字段,客户端会忽略(默认开启@JsonIgnoreProperties(ignoreUnknown=true));若客户端定义字段多于服务端返回,缺失字段为null(可能引发后续NPE)。类型不匹配会触发反序列化异常。建议:1)显式注解忽略未知字段;2)为字段设默认值或使用Optional;3)开启Feign日志调试;4)业务层对null值防御性处理。核心:Feign反序列化宽松,需调用方主动处理字段缺失风险。

2026-08-05 21:13:32 41 1

原创 BigDecimal 精度完全指南

本文详细解析了Java中BigDecimal的7种舍入模式及其应用场景。从基础的ROUND_UP(向上舍入)、ROUND_DOWN(向下舍入)到特殊的ROUND_HALF_EVEN(银行家舍入),每种模式都通过代码示例说明其舍入规则和数字处理效果。文章特别提醒Java9后应使用RoundingMode枚举替代已被弃用的BigDecimal常量,并提供了舍入模式选择建议:常规业务用HALF_UP(四舍五入),金融系统推荐HALF_EVEN(银行家舍入)以减少累计误差,精度校验则使用UNNECESSARY。不同

2026-08-05 08:50:42 66

原创 BigDecimal 精度完全指南

本文深入解析了Java中BigDecimal类的精度机制,重点介绍了Precision(精度)和Scale(小数位数)的概念及运算规则。文章详细说明了不同创建方式的精度差异、运算后的精度变化规律,以及equals()与compareTo()方法的区别。通过金融计算、汇率换算等典型场景示例,展示了如何正确应用BigDecimal进行高精度运算。最后提供了精度管理工具类实现和业务层使用范例,并总结了关键注意事项,强调避免double构造、除法必须指定精度等最佳实践。全文为处理精确计算场景提供了系统性的技术指导。

2026-08-05 08:47:03 165

原创 BigDecimal a.multiply(b),结果保留a 的精度

BigDecimal乘法运算结果的精度(小数位数)由操作数的scale之和决定(a.scale()+b.scale()),这是Java的固定规则。若需使结果精度与其中一个操作数(如a)保持一致,可在乘法运算后使用setScale(a.scale(), RoundingMode.HALF_UP)进行调整。注意:创建BigDecimal时应使用字符串构造方法或valueOf()以避免精度问题。关键步骤:先进行乘法运算,再通过setScale动态设置目标精度。

2026-08-05 08:44:36 173

原创 BigDecimal multiply 两个 3.3*3.333 结果保留几位小数

摘要:BigDecimal的multiply方法计算时,结果的小数位数(scale)是两个操作数小数位数之和。例如3.3(scale=1)乘以3.333(scale=3)结果为10.9989(scale=4)。可通过setScale方法调整小数位数,如四舍五入保留2位得到11.00。创建BigDecimal时应使用字符串构造方法或valueOf方法,避免直接传入double导致精度丢失。核心结论:乘积结果的scale为操作数scale之和,可通过setScale调整最终格式。(149字)

2026-08-05 08:39:04 97

原创 java BigDecimal.multiply方法介绍

摘要: Java的BigDecimal类(位于java.math包)专为高精度十进制运算设计,解决了float/double的浮点误差问题,适用于金融、货币等场景。其核心特性包括:不可变性(线程安全)、字符串构造(避免double精度丢失)、精确小数位控制(如multiply方法结果的小数位数为操作数之和)。使用注意:避免double构造器,除法需显式指定舍入模式,数值比较用compareTo而非equals。示例代码展示了乘法运算及含税价格计算,强调通过MathContext控制精度和舍入模式。 关键词:

2026-08-05 08:35:29 117

原创 直接念给孩子听的简短沟通话术,以及一周打卡模板

安抚完就离开,不要留下来陪睡一整晚

2026-08-05 06:48:03 137

原创 6‑12 岁男孩分床分房独立睡觉完整路径

6‑12 岁男孩,不敢独自睡觉,很多不是 “胆小”,是安全感、分离焦虑,家长越焦虑急躁,孩子越紧张。整个过程,情绪要共情,规则要坚定。

2026-08-05 06:42:16 131

原创 sql 插入判断是否唯一的标砖

摘要:该代码使用MySQL的INSERT...ON DUPLICATE KEY UPDATE语法实现数据插入或更新,主要通过主键或唯一索引判断记录是否重复。最可能的设计是以(organization_id, prediction_date)作为联合主键/唯一索引,表示每个组织每天只有一条预测记录。当这些字段值重复时,系统会更新prediction_weight和vehicle_number字段。文章还指出了当前字符串拼接方式存在的SQL注入风险,建议改用参数化查询提高安全性。最后强调使用该语法时需要确保表有

2026-08-04 22:05:33 114

原创 JPA JPARepository upsertBatch 方法详解

本文详细探讨了Spring Data JPA中实现批量upsert操作的四种方案。由于JPA原生不支持upsertBatch,文章分析了不同方案的优缺点:标准JPA的saveAll()方法简单但性能低;原生SQL性能最高但可移植性差;JDBC批量操作平衡性能与复杂度;自定义Repository封装提供灵活实现。文章建议根据数据量选择方案(小批量用saveAll,大批量用原生SQL或JDBC),并特别提醒注意缓存清理、乐观锁、事务边界等关键问题。最后推荐将大批量操作分批处理,并封装在自定义Repository

2026-08-04 21:59:04 86

原创 故障树分析法(Fault Tree Analysis, FTA)

故障树分析法(FTA)是一项历经数十年考验的强大系统工程工具。它通过严谨的逻辑推理和直观的可视化图形,帮助工程师“从果溯因”,精确锁定系统故障的根源。尽管在面对超复杂系统时存在挑战,但随着动态化、智能化、模糊化等新技术的融入,FTA正不断进化,在现代及未来的高可靠性系统设计中,依然是不可或缺的风险评估与故障诊断利器。

2026-08-04 20:59:11 254

原创 帕累托分析法:聚焦关键少数,解决绝大多数问题

摘要: 帕累托分析法基于“二八定律”,指出80%的问题往往由20%的关键原因导致。通过识别并优先解决这些“关键少数”,可高效优化资源分配。其核心步骤包括:定义问题、收集数据、分类排序、绘制帕累托图并锁定主因。适用于质量管理、运营优化等领域,但需注意其局限,如仅关注频次而忽视严重性。该方法常作为根因分析的起点,需结合其他工具(如5WHY)深入挖掘原因。核心原则是集中资源解决高回报问题,避免在低效事务上过度消耗。

2026-08-04 20:51:30 178

原创 EMA 指数移动平均:原理、应用与代码实践

指数移动平均(EMA)是一种加权移动平均方法,通过赋予近期数据更高权重,实现对趋势变化的灵敏捕捉。EMA广泛应用于金融量化、技术指标计算和信号处理等领域。其核心公式为递归计算,时间复杂度为O(1),适合流式处理和实时计算。相比简单移动平均(SMA),EMA反应更快但相对不平滑。EMA常用于技术分析中的趋势判断、MACD指标计算,以及时间序列预测和信号降噪。典型实现包括Python、Java和SQL版本。进阶应用包括双EMA交叉策略和MACD指标实现。EMA优缺点明显:对趋势反应灵敏但存在滞后性,且参数选择对

2026-08-04 14:13:54 14

原创 EMA 指数移动平均线

指数移动平均线(EMA)是一种对近期价格赋予更高权重的技术分析指标,比简单移动平均线(SMA)对趋势变化更敏感。其核心计算公式包含加权计算乘数,初始值通常用收盘价或SMA。EMA反应速度快,适合短线交易和趋势跟踪,常用于判断趋势(如金叉/死叉信号)和动态支撑阻力位。但EMA仍有滞后性,在震荡市场效果不佳,且参数选择需结合交易品种特性。使用时需注意其作为心理价位而非绝对买卖点,最适合趋势明显的市场环境。

2026-08-04 14:08:18 171

原创 小升初男孩 喜欢打游戏,看武侠电视剧,引导他避免沉迷,走上正确的道路

文章摘要:针对小升初男孩沉迷游戏和武侠剧的问题,核心在于理解其背后对成就感、掌控感和社交认同的需求。建议采取四步引导法:1)建立共情而非对立关系;2)协商游戏时间契约;3)将武侠元素转化为语文历史学习资源;4)在现实中设计"英雄任务"培养体魄、技能等能力。关键在于让现实生活比虚拟世界更具吸引力,而非简单禁止。若出现熬夜游戏、成绩骤降等危险信号需及时干预。最终目标是帮助孩子在现实中找到成长路径。

2026-08-03 21:05:54 12

原创 小升初男孩 引导他进入正确的初中生活,并且建立正确的价值观和人生观

这篇文章为小升初男孩的家长提供了系统的教育指导框架。核心观点是:初中阶段的教育重点应从"管控"转向"引导",帮助孩子建立自我管理系统。文章从学业、社交和自我认知三个关键战场展开,提出具体可操作的引导方法:在学业上培养规划能力,通过"课表推演"和任务拆解教会自主学习;在社交方面注重培养判断力,通过场景化提问引导思考人际关系;在自我认知上通过成长型对话帮助建立身份认同。同时强调价值观教育应通过日常故事、行为示范和尊重差异来实现,而非简单说教。文章最终指

2026-08-03 20:59:14 34

原创 每天都在坚持自己的主线任务,并且前进一点点

这篇文章提供了一套系统化方法帮助人们持续专注于"主线任务",核心观点是:将模糊目标转化为可执行的最小单元,通过日常习惯和可视化追踪确保持续进步。作者提出了三个关键策略:1)用"主干道思维"每天校准方向;2)采用"1%法则"量化每日进步;3)建立固定时间块、进度可视化和低能量模式三大支柱来维持连续性。文章特别强调,重点不在于每天的完成量,而在于保持不间断的行动惯性,即使状态不佳时也要完成最低限度的任务。通过拆解大目标、建立反馈机制和简化决策流程,这套

2026-08-03 20:54:15 52

原创 保持自己的好奇心,并且每天挑战以下自己的不可能,让自己变得优秀起来

《重塑成长系统的三个底层逻辑》指出持续进步需要建立元认知能力,而非依赖短期激励。系统提出三大核心方法:1.培养好奇心,通过每日"为什么"提问训练思维敏感度,保持信息环境多样性;2.设计"边缘挑战",将大目标拆解为最小可执行动作,建立挑战账簿记录进步;3.构建成长闭环(感知-认知-行动-复盘),用"学习区时间占比"和"主动事件率"量化进步。强调真正的成长是系统化工程,需要将不适区转化为学习区,通过持续微调实现迭代进化。

2026-08-03 20:49:56 31

原创 大胆和客户沟通,讨论,深入交流

《从"敢开口"到"敢深入"的技术沟通进阶指南》摘要 文章针对技术人员在客户沟通中不敢深入交流的问题,提出系统性解决方案。首先剖析三大底层恐惧:知识恐惧、判断恐惧和关系恐惧,指出沟通本质是互补而非表演。随后给出三层进阶路径:1)准备阶段构建客户全景图、准备保险话题和防冷场问题;2)现场运用"顺→挖→塑"结构化框架;3)深入阶段从功能讨论升级到业务价值对话。文章还提供困难场景应对策略和PDCA闭环提升方法,强调"带着紧张行动"和&q

2026-08-03 20:43:37 206

原创 今天去客户现场,终于开口和客户做了些简单的沟通,之前基本上保持沉默,现在慢慢的在突破自我

文章摘要: 从不敢开口到主动交流是技术人员的重大突破。建议分三步提升:1.心态上从"证明自己"转为"帮助客户",以医生问诊心态倾听业务痛点;2.运用结构化倾听和探针式提问,将闲聊深化为业务探讨;3.通过会后及时反馈和记录客户个人细节建立长期信任。遇到技术盲点时,坦诚承认并承诺后续回复反而能赢得尊重。技术人员的沟通能力提升会显著放大专业价值。

2026-08-03 20:37:37 97

原创 系统分析师案例第一题因果分析法 拦路虎

摘要:本次考试中的因果分析题看似意外,实则是考察系统分析师核心能力的"下马威"。题目旨在筛选具备系统性思维而非死记硬背的考生,重点测试从现象追溯根源的分析能力。该题难度在于灵活应用基本概念(如鱼骨图、5Why分析法)解决复杂案例,考查知识迁移和系统性思维(如6M维度分析)。建议备考者培养"分析师思维",通过实际案例练习运用分析方法,提升问题解决能力,而非仅记忆技术细节。

2026-08-03 20:23:40 131

原创 left join 和inner join on 后边的条件 还有 and 条件 和where 后的比较

SQL中LEFT JOIN与INNER JOIN的关键区别在于条件放置位置:ON决定连接方式(保留左表全部数据),WHERE过滤最终结果(可能丢弃数据)。INNER JOIN中ON和WHERE效果相同,但建议ON放关联条件、WHERE放业务条件;LEFT JOIN时右表过滤条件必须放在ON中(用AND),放在WHERE会导致左表数据丢失。执行顺序上,ON在连接时筛选,WHERE在连接后过滤。最佳实践是关联条件写ON,右表过滤用AND,整体过滤放WHERE,需保留左表数据时避免在WHERE中过滤右表。

2026-08-03 20:15:52 654

原创 一次 nacos 配置不生效问题的总结

摘要: 该问题涉及Nacos配置未覆盖代码默认值(449),表现为@Value未读取Nacos配置(1552)。排查步骤包括:1)检查Nacos配置是否加载(通过日志打印配置源);2)核对DataID、Group及配置格式;3)确认配置已发布且无格式错误;4)确保类添加@RefreshScope或使用@ConfigurationProperties动态刷新;5)验证Spring Cloud版本兼容性。常见原因包括配置未加载(检查bootstrap.yml)或缺少刷新注解。推荐优先执行诊断代码确认配置源状态。

2026-08-03 19:34:33 283

原创 周星驰的“功夫女足”与港星终局启示录:一个“产品洁癖”天才的系统性困局

我们不是要去评判谁活得更好,而是要看清每一种活法背后的代价。周星驰选择了用孤独换取作品的永恒,这是他的权利,也是他的代价。但对我们普通人而言,或许还有一条更温暖的路——在追求卓越的同时,依然保持对他人的善意;在坚持原则的同时,依然保留一份对世界的柔软。因为在这个世界上,再好的电影,如果没有观众一起分享,也只是无人知晓的尘埃。

2026-08-03 19:31:41 615

原创 欧拉螺旋曲线

欧拉螺旋曲线(又称羊角螺线或回旋曲线)是一种曲率随弧长线性变化的数学曲线,在工程与自然界中具有广泛应用。历史上被欧拉(弹性力学)、考纽(光学衍射)和铁路工程师多次独立发现。其核心价值在于实现平滑过渡:铁路弯道用它减少离心力冲击,光学中简化衍射计算。最新研究发现老鼠胡须也遵循该曲线,揭示了大自然的精妙设计。这条集数学之美与实用价值于一身的曲线,已成为连接科学与艺术的经典范例。

2026-08-02 16:16:22 237

原创 轨迹优化算法

轨迹优化算法是将运动规划转化为可执行轨迹的关键环节,主要解决如何沿预定路径运动的问题,需综合考虑时间、速度、加速度及物理限制。主流算法包括:图搜索算法(如A*)适合全局路径规划;采样规划算法(如RRT*)适用于高维复杂环境;插值法(如多项式曲线)生成平滑轨迹;数值优化方法(如MPC)处理动态环境;智能算法(如GA)解决多目标优化。现代趋势是混合规划框架和AI融合(如DRL),以兼顾全局最优与局部实时性。选择算法需根据具体场景(自动驾驶、无人机等)和优化目标(最短路径、平滑性等)决定。

2026-08-02 16:16:01 382

原创 正弦曲线,三次样条插值‌

正弦曲线与三次样条插值的对比分析 正弦曲线(y=Asin(ωx+φ)+k)是解析定义的周期函数,具有无限光滑性和固定周期特性,适用于简谐振动、波形生成等场景。三次样条插值则是通过分段三次多项式精确拟合离散数据点的插值方法,具有二阶导数连续性,适用于轨迹规划、数据可视化等领域。 核心差异: 生成方式:正弦曲线为全局函数,三次样条为分段构造 灵活性:正弦曲线仅能描述波形,三次样条可拟合任意形状 参数控制:正弦曲线4个参数控制整体,三次样条参数随数据点增加 计算效率:正弦曲线O(1)复杂度,三次样条需解方程组(O

2026-08-02 16:15:36 295

原创 链表交叉和链表成环

摘要:本文系统解析了链表交叉与成环问题的核心概念、算法实现及工程应用。链表交叉表现为Y形结构,需检测公共节点(双指针/长度差法);成环则呈现闭环,使用Floyd快慢指针检测。关键对比包括结构特性(交叉共享节点vs.环自引用)、算法选择(O(1)空间优化)及场景应用(版本控制/环检测)。高级变体涵盖多链表交叉、环长度计算及并发安全检测,辅以数学证明和复杂度分析。实践建议优先选择双指针法(交叉)和Floyd算法(成环),大数据量需结合并行处理与监控。全文提供代码示例和速查表,兼顾理论与实操。

2026-08-01 04:41:56 58

原创 三次样条插值‌和欧拉螺旋曲线

三次样条插值与欧拉螺旋曲线在路径构建中存在本质差异:三次样条通过分段三次多项式精确拟合所有数据点(C²连续),强调形状复现;欧拉螺旋则追求曲率线性渐变,专门实现直线与圆弧的自然过渡。前者适用于数据可视化、轨迹规划等需精确插值的场景,后者则专长于道路设计、机器人转向等需曲率连续变化的领域。二者可分层协作——全局路径用样条规划关键点,局部过渡用欧拉螺旋优化曲率。选择依据核心需求是点精度优先(样条)还是动力学平滑优先(螺旋)。

2026-08-01 04:41:35 128

原创 给5000个点去重,降噪,平滑

摘要:针对轨迹点数据存在锋利棱角问题,推荐采用三次样条插值法实现平滑处理。该方法通过构造三次多项式保证曲线一阶、二阶导数连续,能精确通过每个原始点并消除折线感。Python实现方案包括:1)基础三次样条插值(适用通用场景);2)参数样条(处理闭合/复杂轨迹);3)平滑样条(应对含噪数据)。最佳实践建议先确保点集有序,调整插值密度(如每两点间插入9个点),重要闭合轨迹需设置周期参数。方案一代码可直接运行,能显著提升轨迹可视化效果。

2026-08-01 04:41:16 111

原创 DK 8 锁机制、Redis 互斥锁、数据库排它锁

本文系统剖析了Java并发锁的核心知识,从七个维度展开分析: JDK8锁机制:包括悲观锁(synchronized、ReentrantLock)和乐观锁(CAS、AtomicXXX),以及偏向锁、轻量级锁、重量级锁的升级流程。 Redis互斥锁:基于SETNX和Redisson实现分布式锁,支持自动续期和原子性释放。 数据库排它锁:通过SELECT FOR UPDATE和JPA实现行级锁,保障强一致性。 锁优化策略:如锁粗化、锁消除、减小锁粒度,以及超时控制。 优缺点对比:对比synchronized、Re

2026-08-01 04:40:48 8

原创 秒杀系统的锁设计 和 分布式事务的锁方案

本文深度剖析了秒杀系统和分布式事务中的锁设计方案。秒杀系统通过四层防御体系(流量过滤→本地锁→分布式锁→数据库锁)应对高并发挑战,核心采用Redis预扣库存、Redisson分布式锁和数据库乐观锁的组合方案。分布式事务则对比了XA协议、TCC、Saga和本地消息表等多种方案,各有侧重:XA强一致但性能差,TCC高性能但实现复杂,Saga适合长流程,本地消息表实现最终一致性。两者的关键差异在于,秒杀锁追求极短持有时间和超高吞吐量,而分布式事务锁更关注跨服务数据一致性。最佳实践中,秒杀推荐Redis+乐观锁+M

2026-08-01 04:40:29 10

原创 TCC 的幂等性设计、Saga 的可观测性设计

本文深入探讨了分布式事务的两种核心解决方案:TCC幂等性设计和Saga可观测性设计。TCC通过Try-Confirm-Cancel三阶段实现强一致性,重点解决了幂等性问题,提出了基于事务ID+状态表、Redis缓存和乐观锁三种实现方案。Saga采用长事务拆分和补偿机制,强调可观测性设计,构建了包含链路追踪、状态监控、性能分析和异常告警的完整体系。文章从原理、实现、优缺点、适用场景等多个维度进行对比分析,指出TCC适合短事务强一致性场景,而Saga更适合长事务最终一致性场景,并提供了具体的设计要点和代码实现示

2026-08-01 04:40:07 3

原创 jdk17,21,25 使用选择

Java 25 不是一个简单的版本号更新,它是 Java 语言迈向“现代、高效、云原生”的里程碑。对于仍停留在 Java 8/11 的项目,升级到 Java 25 不仅是性能的飞跃(+16% 代码速度),更是开发范式的革命(虚拟线程与结构化并发),将从根本上改变我们构建高并发系统的方式。对于已经在 Java 17/21 的项目,Java 25 提供了更精细的内存控制(紧凑对象头)和更完善的安全/可观测性工具,是保持技术领先性的必要选择。

2026-08-01 04:39:41 82

【云原生高并发】基于Gin与gRPC的Go语言微服务架构:WebSocket聊天室与K8s Operator实战设计

内容概要:本文深入探讨了Go语言在云原生与高并发系统中的核心技术与实战应用,涵盖Gin构建高性能RESTful API、WebSocket聊天室实现、gRPC微服务通信优化,以及K8s Operator开发等核心场景。文章剖析了Go的GMP调度器、goroutine轻量级并发、channel通信机制与Context控制传播等底层原理,并结合生产级案例展示了高吞吐、低延迟系统的设计方法。同时,通过历史人物类比揭示架构哲学,提出微服务拆分、限流熔断、可观测性等最佳实践,并展望Go在AI基础设施与多语言协作中的未来趋势。; 适合人群:具备Go语言基础,从事云原生、高并发系统开发的中高级研发人员、架构师及技术负责人。; 使用场景及目标:①掌握Gin、gRPC、WebSocket等高并发服务的构建与调优;②理解GMP、Context、Channel等核心机制的原理与应用;③学习K8s Operator开发与微服务治理策略;④借鉴历史智慧提升架构设计认知。; 阅读建议:此资源融合技术深度与架构思维,建议结合代码实践与生产场景调试,重点关注性能优化、资源控制与系统鲁棒性设计,同时拓展对多语言协同与AI基础设施的前瞻性认知。

2026-05-21

云原生基于Go语言的Kubernetes Operator与Service Mesh集成:Serverless函数高并发架构设计

内容概要:本文系统阐述了Go语言作为云原生时代“天命语言”的底层哲学与实战体系,深入剖析其高并发模型(Goroutine+Channel)和CSP通信范式,并通过Kubernetes Operator开发、Service Mesh(Linkerd)集成、Serverless函数编写三大维度构建完整的云原生技术栈。文章结合G-M-P调度模型、四大并发模式(扇入/扇出/管道/信号量)、controller-runtime框架应用及Linkerd抗量子加密、MCP协议等前沿趋势,提出从技术驾驭到架构领导的三阶段成长路径,强调Go在简洁性、并发安全与工程确定性方面的核心优势。; 适合人群:具备Go语言基础,从事云原生、微服务、Kubernetes相关工作的研发工程师、架构师及技术负责人,尤其是希望在2026年云原生与AI融合趋势中建立技术护城河的技术从业者。; 使用场景及目标:① 掌握Go高并发编程的工业级实现模式;② 开发生产级Kubernetes Operator实现有状态服务自动化管理;③ 集成Linkerd服务网格以支持AI Agent流量治理;④ 构建高性能、低成本的Serverless函数;⑤ 完成从编码者到云原生架构师的技术跃迁。; 阅读建议:此资源兼具理论深度与实战指导,建议结合本地K8s环境(如Kind/K3s)动手实践Operator与Service Mesh集成案例,重点关注context、channel、controller-runtime等核心机制的设计思想与避坑指南,并持续跟进CNCF社区动态以把握Go在云原生与AI融合领域的演进方向。

2026-05-21

【云原生可观测性】基于Go语言的高并发系统工具开发:命令行工具、日志收集与Prometheus监控告警一体化设计

内容概要:本文通过三个递进式实战项目——基于Cobra库开发命令行工具、构建高性能日志收集系统、实现Prometheus监控客户端,系统性地讲解了Go语言在云原生高并发场景下的深度应用。文章以“庖丁解牛”为隐喻,强调从底层原理出发,深入调度器、内存管理、GC优化等核心技术,帮助开发者突破API使用者的角色,成长为具备架构设计能力的云原生专家。项目涵盖CLI智能交互、零拷贝日志采集、运行时指标暴露与异常诊断等高级特性,最终整合为可观测性平台雏形。; 适合人群:具备Go语言基础,有一定并发编程经验,工作2-5年、希望深入云原生底层原理并提升系统设计能力的研发工程师或架构师。; 使用场景及目标:①掌握Cobra+Viper构建专业CLI工具的方法;②理解高吞吐日志系统的背压控制与零拷贝实现;③学会开发具备实时诊断能力的Prometheus Exporter;④全面提升对Go运行时、系统编程和云原生生态的技术掌控力。; 阅读建议:此资源强调动手实践与源码级理解,建议边读边搭建开发环境(Docker+K8s+Prometheus+Jaeger),按文中里程碑逐步实现各模块,并结合性能调优与线上对比测试,真正实现从“用工具”到“造工具”的认知跃迁。

2026-05-21

赤水,黄果树瀑布图资源

赤水位于贵州遵义,以世界自然遗产“中国丹霞”闻名,核心景观佛光岩被誉为“世界丹霞之冠”。黄果树瀑布位于贵州安顺,是亚洲最大瀑布,高77.8米、宽101米,以水势浩大著称。两地同属贵州经典自然景观,赤水偏重丹霞地貌与红色文化,黄果树则以喀斯特瀑布群为核心吸引力。

2026-05-21

【嵌入式系统】基于STM32的软硬件协同设计:嵌入式系统组成结构与典型应用开发指南

内容概要:本文系统介绍了嵌入式系统的组成结构、典型业务场景以及基于STM32F103微控制器的实际应用案例。首先从硬件层(处理器、存储器、I/O设备、通信接口和电源管理)、软件层(HAL、RTOS、中间件和应用程序)和开发工具三个方面详细解析了嵌入式系统的分层架构;其次,从消费电子、工业控制、汽车电子、医疗设备、通信网络及航空航天等多个领域阐述了嵌入式程序的广泛应用,并归纳了其核心业务逻辑类型,如控制驱动、信号处理、数据采集、人机交互等;最后,重点讲解了STM32F103这款经典MCU的技术特点、片上资源、开发环境与生态系统,展示了其在实际项目中的高可用性和易开发性。; 适合人群:具备一定电子技术或编程基础,希望进入嵌入式开发领域的初学者及1-3年经验的工程师。; 使用场景及目标:①理解嵌入式系统软硬件协同工作机制;②掌握STM32F103等主流MCU的选型与开发流程;③应用于智能设备、工业控制、物联网终端等项目的原型设计与功能实现; 阅读建议:建议结合STM32开发板动手实践文中提到的外设操作与通信协议应用,利用STM32CubeMX等工具进行配置学习,逐步构建完整的嵌入式系统开发能力。

2026-04-24

网络安全基于DVWA的渗透测试实战指南

内容概要:本文详细介绍了DVWA(Damn Vulnerable Web Application)漏洞靶场的搭建过程及常见Web漏洞的实战演练方法。涵盖环境部署(支持Docker快速部署)、数据库初始化、登录验证与安全级别设置,并重点讲解了命令注入、文件上传、CSRF等典型漏洞在低安全级别下的复现步骤与攻击原理,同时提供了中高安全级别的绕过思路。文章最后给出了系统化的学习路径建议,帮助初学者循序渐进掌握暴力破解、SQL注入、XSS、文件包含等核心安全测试技能。; 适合人群:网络安全初学者、渗透测试入门人员、从事Web安全相关工作的技术人员,以及有一定基础的安全爱好者。; 使用场景及目标:①用于搭建本地安全实验环境,深入理解常见Web漏洞的形成机制与利用方式;②配合Burp Suite等工具进行实战演练,提升漏洞挖掘与防御能力;③通过逐步提升DVWA安全等级,研究不同防护机制下的绕过技术。; 阅读建议:建议读者在实际操作中结合“View Source”功能查看源码,分析漏洞成因,并严格按照由Low到High的安全等级递进学习,强化对防御措施与攻防对抗的理解。

2026-04-24

网络安全DVWA漏洞靶场原理分析与总结:Web安全测试中的命令注入、文件上传、CSRF等漏洞防御机制研究

内容概要:本文详细分析了DVWA(Damn Vulnerable Web Application)中常见的几类Web安全漏洞,包括命令注入、文件上传、跨站请求伪造(CSRF)、SQL注入、跨站脚本攻击(XSS)和文件包含漏洞。针对每种漏洞,文章从原理出发,结合不同安全级别(Low、Medium、High、Impossible)的源码对比,揭示了各类防御机制的设计思路及其有效性,最后总结出从脆弱代码到安全编码的演进路径与核心防御原则。; 适合人群:具备基本Web开发与网络安全知识,从事Web安全研究、渗透测试或安全开发的技术人员,尤其是初学者和中级学习者。; 使用场景及目标:①深入理解常见Web漏洞的成因与利用方式;②掌握从漏洞代码到安全代码的修复逻辑与最佳实践;③辅助安全教学、漏洞复现与防御方案设计。; 阅读建议:建议结合DVWA靶场环境,边阅读源码边动手实验,重点关注各安全级别之间的差异,理解为何某些防御措施存在缺陷,以及如何构建多层次的深度防御体系。

2026-04-24

即时通讯亿级消息量分布式IM系统架构设计:读写扩散模式与多端同步关键技术研究

内容概要:本文围绕设计一个支持亿级消息量的分布式IM系统,系统性地分析了IM架构中的核心技术难点与业界解决方案。重点探讨了读扩散与写扩散两种消息模型的优劣及适用场景,深入剖析了唯一ID生成(如Snowflake、DB步长等)、消息推拉模式(推、拉、推拉结合)、消息实时性与时序保障、多端同步、未读数管理、历史消息存储、数据冷热分离以及接入层负载均衡等关键设计问题。并通过微信、钉钉、Twitter等实际案例,展示了不同企业在大规模IM系统中的技术选型与权衡思路。; 适合人群:具备一定分布式系统基础,从事即时通讯、社交或高并发系统开发的中高级研发人员,尤其适合1-5年经验、希望深入理解IM底层架构的工程师。; 使用场景及目标:①理解IM系统中读扩散与写扩散的核心差异及其对性能的影响;②掌握消息ID生成、消息时序控制、多端同步、未读数一致性等关键技术的设计原理;③借鉴微信、钉钉等大厂实践,指导自研IM系统的架构设计与优化;④应对高并发、低延迟、高可靠性的IM业务需求。; 阅读建议:此资源侧重架构设计与技术权衡,非代码实现类教程,建议结合实际项目背景,重点关注各技术方案的适用条件与代价,在设计IM系统时灵活选用合适模式,并持续关注性能边界与可扩展性。

2026-04-24

grafana 8.4.3 监控工具

Prometheus 存数据,Grafana 画图表

2026-04-10

prometheus 2.33.4

x86架构,下 prometheus 版本2.33.4.tar.gz 包

2026-04-10

Jenkins DevOps 自动化中枢

Jenkins 是一款开源的自动化服务器,基于 Java 开发,是 DevOps 工具链中当之无愧的"自动化中枢"。它的核心使命是通过持续集成(CI)与持续交付/部署(CD)的全流程自动化,消除手动干预的低效与风险。

2026-04-10

harbor 镜像仓库,存放K8s 镜像的平台

Harbor 是一个开源的企业级 Docker 镜像仓库,用于存储、分发和管理容器镜像。它在 Docker Registry 基础上增加了企业级功能,如安全扫描、角色权限控制、镜像复制、策略管理、审计日志等。

2026-03-30

nginx,负载均衡,代理

Nginx 是一款高性能的 HTTP 和反向代理服务器,也常被用作负载均衡器。它能够将客户端请求分发到多台后端服务器,从而提升系统的处理能力、可用性和可扩展性。 1. 反向代理与负载均衡 反向代理:Nginx 接收客户端请求,转发给后端服务器,并将响应返回给客户端。客户端感知不到后端服务器的存在。 负载均衡:Nginx 将请求按照某种算法分发到多个后端实例,均衡负载。 2. 常见负载均衡算法 轮询(round-robin):默认方式,按顺序轮流分发。 最少连接(least_conn):将请求分配给当前活动连接数最少的后端。 IP 哈希(ip_hash):根据客户端 IP 地址的哈希值分配后端,实现会话保持。 随机(random):随机选择后端。 加权轮询/加权最少连接:可配置权重,让性能更好的服务器处理更多请求。

2026-03-30

谷歌浏览器,属于一种浏览器

Google Chrome是由谷歌公司开发的网页浏览器 [13]。该浏览器基于其他开源软件(包括WebKit和Mozilla)开发,任何人都可以根据自己需要使用、修改或增强这一浏览器的功能。 [25] Google Chrome的名称来自称作Chrome的网络浏览器GUI(图形用户界面) [2]。2008年9月,第一个测试版本发布,提供50种语言版本 [1]。2008年12月,谷歌发布Chrome浏览器首个稳定版本,以及开源浏览器Chromium [26]。2009年6月,首款在Mac OS X和Linux操作系统的开发者预览版Google Chrome正式发布 [27]。2011年,Chrome停止对H.264视频解码的支持 [43]。2015年4月,Chrome浏览器停止对Windows XP系统的支持 [47]。2016年4月,移动版Chrome浏览器月活跃用户数突破10亿 [49]。2019年8月,Google推出“隐私沙箱”(Privacy Sandbox)技术 [55]。2020年3月,谷歌暂停向Chrome浏览器系统增加新功能 [3]。2022年2月,Google修改Chrome浏览器图标 [6]。2023年2月, Chrome浏览器支持内存节省和节能模式 [14]。2024年5月,Chrome浏览器稳定版125版本发布,新增相关搜索建议和提升在线安全保障方法 [20]。9月,谷歌发布Chrome浏览器129稳定版,共计修复9项安全问题 [155]。2025年1月,Chrome133浏览器,引入名为“冻结”(freezing)的节能功能。 [161]10月31日,谷歌宣布,2026年10月将默认浏览器优先访问HTTPS网站。

2026-03-30

mysql innodb死锁问题详解.docx

死锁指两个事务或者多个事务在同一资源上相互占用,并请求对方所占用的资源,从而造成恶性循环的现象。 系统资源不足 进程运行推进的顺序不当 资源分配不当 产生死锁的四个必要条件 互斥条件: 一个资源只能被一个进程使用 请求和保持条件:进行获得一定资源,又对其他资源发起了请求,但是其他资源被其他线程占用,请求阻塞,但是也不会释放自己占用的资源。 不可剥夺条件: 指进程所获得的资源,不可能被其他进程剥夺,只能自己释放 环路等待条件: 进程发生死锁,必然存在着进程-资源之间的环形链 处理死锁的方法: 预防,避免,检查,解除死锁 数据库也会发生死锁的现象,数据库系统实现了各种死锁检测和死锁超时机制来解除死锁,锁监视器进行死锁检测,MySQL的InnoDB处理死锁的方式是 将持有最少行级排它锁的事务进行回滚,相对比较简单的死锁回滚办法

2020-01-15

微服务架构下的数据一致性:概念及相关模式.docx

从2014年开始,微服务逐渐进入大家的实现,被认为是下一代实现信息化的有效手段。设计到系统,其中绕不开的就是数据一致性,从本地事务,到后来的分布式事务,都能够有效的保证数据一致性。但是在微服务架构中,这两种方式都不是最好的选择。

2020-01-15

敏捷需求管理培训文档说明书

企业级敏捷需求管理,敏捷需求管理 敏捷需求管理 生产活动的计划、组织、控制工作。它 通过合理组织生产过程,有效利用生产资源,以 达到预期目标。

2024-08-01

领域驱动设计在互联网业务开发中的实践应用(联想研究院).docx

领域驱动设计在互联网业务开发中的实践应用(联想研究院)

2019-10-29

fastdfs集群安装部署V1.0.docx

分布式文件服务安装 FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。 FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。

2020-01-15

Disruptor 一种可替代有界队列完成并发线程间数据交换高性能解决方案.docx

本文翻译自LMAX关于Disruptor的论文,同时加上一些自己的理解和标注。Disruptor是一个高效的线程间交换数据的基础组件,它使用栅栏(barrier)+序号(Sequencing)机制协调生产者与消费者,从而避免使用锁和CAS,同时还组合使用预分配内存机制、缓存行机制(cache line)、批处理效应(batch effect)来达到高吞吐量和低时延的目标。目前Disruptor版本已经迭代至3.0,本论文是基于Disruptor1.0写就,在新版本中,相对与1.0版本,其核心设计思想没有变,只是实现细节有所调整和优化,因此,此论文仍然很有研读意义。

2020-01-15

京东针对Redis Rehash机制的探索和实践.docx

基于Redis Cluster打造的缓存系统。经过不断的迭代研发,目前已形成一整套自动化运维体系:涵盖一键运维集群、细粒度的监控、支持自动扩缩容以及热点Key监控等完整的解决方案。同时服务端通过Docker进行部署,最大程度的提高运维的灵活性。分布式缓存Squirrel产品自2014年上线至今,已在京东内部广泛使用,存储容量超过80T,日均调用量也超过万亿次,逐步成为京东目前最主要的缓存系统之一。 随着使用的量和场景不断深入,Squirrel团队也不断发现Redis的若干"坑"和不足,因此也在持续的改进Redis以支撑内部快速发展的业务需求。本文尝试分享在运维过程中踩过的Redis Rehash机制的一些坑以及我们的解决方案,其中在高负载情况下物理机发生丢包的现象和解决方案已经写成博客。感兴趣的同学可以参考:

2020-01-15

深度学习应用.docx

2017年,围棋界发生了一件比较重要的事,Master(AlphaGo)以60连胜横扫天下,击败各路世界冠军,人工智能以气势如虹的姿态出现在我们人类的面前。围棋曾经一度被称为“人类智慧的堡垒”,如今,这座堡垒也随之成为过去。 从2016年三月份AlphaGo击败李世石开始,AI全面进入我们大众的视野,对于它的讨论变得更为火热起来,整个业界普遍认为,它很可能带来下一次科技革命,并且,在未来可预见的十多年里,深刻的改变我们的生活。

2020-01-15

KingbaseES.pdf

Kingbase ES是面向事务处理类、兼顾分析类应用领域的新型数据库产品,致力于解决高并发、高可靠数据存储计算问题,是一款面向企事业单位管理信息系统、业务及生产系统、决策支持系统等量身打造的承载数据库,目前功能性能已全面升级,是真正具有高成熟度的数据库产品。

2020-01-15

实战体验几种MysqlCluster 方案.docx

MySQL Cluster 是MySQL 官方集群部署方案,它的历史较久。支持通过自动分片支持读写扩展,通过实时备份冗余数据,是可用性较高的方案,声称可做到99.999%的可用性。

2020-01-15

numpy-1.16.5.zip

python 按照 openCV 必须组件,可以放心下载 不会骗人哦,NumPy系统是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix))

2020-01-02

ZenTaoPMS.11.7.stable.zip

禅道项目管理软件的主要管理思想基于国际流行的敏捷项目管理方式——Scrum。scrum是一种注重实效的敏捷项目管理方式,但众所周知,它只规定了核心的管理框架,但具体的细节还需要团队自行扩充。禅道在遵循其管理方式基础上,又融入了国内研发现状的很多需求,比如bug管理,测试用例管理,发布管理,文档管理等。因此禅道不仅仅是一款scrum敏捷项目管理工具,更是一款完备的项目管理软件。基于scrum,又不局限于scrum。 禅道还首次创造性的将产品、项目、测试这三者的概念明确分开,产品人员、开发团队、测试人员,这三者分立,互相配合,又互相制约,通过需求、任务、bug来进行交相互动,最终通过项目拿到合格的产品。

2020-01-15

知名电商购物车用例图.png

SOA,微服务架构电商购物车架构设计

2021-03-17

记一次服务发布之后,图形验证码乱码的服务排查.docx

记一次服务发布之后,图形验证码乱码的服务排查

2019-10-29

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

TA关注的人

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