- 博客(996)
- 资源 (12)
- 收藏
- 关注
原创 Nginx 全方位安全防护配置指南
通过上述配置,可大幅提升 Nginx 服务器的抗攻击能力,抵御 DDoS、SQL 注入、XSS、目录遍历等常见攻击。建议结合实际业务场景调整参数,并通过。:Nginx 安全需结合网络层(防火墙)、应用层(WAF)和监控层(日志分析)。:定期升级 Nginx 版本,关注 CVE 漏洞。模块监控流量、连接数等关键指标。:禁用非必要功能,限制用户权限。以下是一篇更为全面的。测试配置后重载生效。
2025-12-31 15:01:47
384
原创 项目成败的关键:预期管理
软件项目的真正悲剧,往往不是技术缺陷,而是预期雪崩。当我们停止争论“是谁的错”,转而追问“我们该如何对齐对成功的定义”,那些关于预算、工期、需求的争吵,终将化作推动产品落地的合力。选择合作伙伴时,请务必确认:对方是否把预期管理置于与代码质量同等重要的位置——这或许比技术栈更决定项目生死。
2025-12-29 10:59:30
362
原创 精准替换:零侵入修复历史依赖库致命缺陷
在历史项目维护中,第三方依赖库的致命缺陷常成为系统稳定性的隐形炸弹。当遇到无人维护的"僵尸库"时,提供了一种零侵入的应急修复方案——通过类覆盖实现精准替换,无需修改原始库或调用方代码。
2025-12-12 16:15:26
406
原创 解锁高效文本搜索:深入理解 MySQL 全文索引
全文索引的核心原理是“分词”(Tokenization)。它会将存储在每个记录中的文本内容拆分成一个个独立的单词或词组(称为“词元”或“令牌”),并为这些分词建立索引。当进行搜索时,数据库引擎不再需要逐字逐句地扫描整个文本,而是直接在这个分词的索引中进行查找和匹配,从而极大地提升了查询效率。
2025-12-12 16:15:06
527
原创 linux sed:功能强大的流式文本处理器
sed以其高效流处理和简洁语法成为Linux文本处理的基石。掌握它,你将拥有批量处理日志、配置、代码的自动化能力。从简单替换开始,逐步探索正则与范围操作,很快你就能在终端中优雅地驯服海量文本数据。附:速查表s/old/new/g # 全局替换/pattern/d # 删除匹配行3,7s/foo/bar/ # 替换3-7行的foo1i\text # 在第1行前插入$a\text # 在最后一行后插入y/abc/ABC/ # 字符转换(a→A, b→B)
2025-11-01 17:03:05
391
原创 Spring Boot将错误日志发送到企微微信或钉钉群
1.创建 WeComAppender ,重写 AppenderBase 的 append 方法。2.配置 logback.xml。
2025-11-01 17:02:22
242
1
原创 Reflection Utils:让反射变的更简单
通过精妙的封装,让 Java 反射回归其本质价值——专注于动态能力而非语法复杂度。正如开发者所言:"它用一行代码终结了反射的黑暗时代"。当您下次需要突破 Java 静态类型的限制时,请记住这个让反射操作从痛苦变为愉悦的神器。参考依赖。
2025-10-13 08:03:57
283
原创 千万级订单表新增字段:一场技术与需求的博弈
技术方案不是唯一解:需求变更有时比技术方案更能够解决问题尽量避免直接改动核心表结构:可以采用扩展表、JSON字段或冗余字段方案线上DDL操作风险不可小觑:必须谨慎评估对业务的影响测试环境是最好朋友:大胆模拟海量数据测试,才能安心上线有时候,最好的技术方案不是最复杂的技术实现,而是通过沟通找到最简单直接的解决方案。在技术人的成长道路上,这种从单纯技术思维到综合问题解决思维的转变,或许是最宝贵的收获。
2025-09-13 15:24:05
966
原创 Linux 系统性能调优指南:关键配置与最佳实践
系统性能是一个多维度的综合指标,它不仅取决于应用程序本身的质量和底层硬件资源的多寡,更取决于操作系统(OS)作为中间层,能否将硬件资源高效、稳定地分配给应用程序。错误或保守的 OS 配置会成为性能瓶颈,无法充分发挥硬件和软件的全部潜力。本文聚焦于 Linux 操作系统层面的关键性能调优点,通过一系列易于操作的配置调整,旨在提升服务器在高并发、高 I/O、高计算负载下的稳定性和吞吐量,为上层应用(如数据库、大数据平台、Web 服务等)提供一个坚实且高效的基础运行环境。
2025-09-08 09:21:11
1046
原创 Spring Boot配置error日志发送至企业微信
1.创建 WeComAppender ,重写 AppenderBase 的 append 方法。2.配置 logback.xml。
2025-09-03 16:32:11
419
原创 微服务之间的调用需要走网关么?
微服务间是否通过网关调用,本质是“治理粒度”与“性能效率”的权衡。在架构设计初期,可优先让内部服务直接通信以提升性能;随着系统复杂度的增加,再逐步引入网关或服务网格解决安全、监控和治理问题。关键在于明确业务优先级,避免过度设计,同时为未来扩展留出空间。
2025-08-17 10:06:02
1285
原创 SpringBoot整合P6Spy实现全链路SQL监控
直观获取完整SQL:摆脱参数占位符拼接精准定位慢查询:通过耗时监控优化数据库性能 建议在开发/测试环境启用,生产环境按需使用慢查询监控功能。
2025-08-17 10:05:31
309
原创 微服务架构的五大挑战
总结:微服务在提升灵活性和可扩展性的同时,需应对成本、复杂性、部署、一致性及监控等多方面挑战,需结合自动化工具、分布式技术及完善治理策略来平衡利弊。:需额外管理服务的注册、发现、版本控制和路由,可能依赖服务网格或API网关。:跨服务事务的原子性、一致性及隔离性实现难度大,需额外技术投入。:需要更多服务器、容器管理、负载均衡等资源,推高运营成本。:涉及网络通信、故障处理、事务管理等,系统复杂度显著提升。:管理多服务的开发、测试、部署和维护需投入更多人力资源。:问题可能涉及多个服务,需强大工具跟踪性能瓶颈。
2025-08-11 13:39:56
4840
原创 Linux 环境变量/etc/profile与~/.bashrc对比
用户通过 SSH 或控制台登录(登录 Shell)。打开新终端窗口(非登录 Shell)。:系统级环境初始化,适用于所有用户。:用户专属的 Shell 交互配置。设置命令补全、历史记录等。执行子 Shell(如。自定义 PS1 提示符。
2025-08-11 13:39:19
2148
原创 java同时实现一个驱动包对mysql5.x与6.x兼容
事先,我们要有一个使用mysql5.x的应用或者服务,需要修改的部分不算多,但是要想同时想。注:driverClassName不修改会影响性能,但是可以实现兼容两个版本。
2025-08-06 11:23:24
509
原创 阿里Seata事务模式场景化选型指南
二阶段异步删除日志(成功)或利用日志补偿回滚(失败)。基于数据库原生 XA 协议,由事务管理器(TM)协调多个资源管理器(RM,即数据库)进行两阶段提交(Prepare, Commit/Rollback)。(如转账、交易核心),且团队有能力承担开发、测试和维护 TCC 三阶段逻辑的成本时,选择 TCC。的业务流程(如订单创建到物流发货),且能接受最终一致性时,SAGA 是理想选择。且业务可拆分的场景(如转账业务:Try 阶段冻结双方资金,Confirm 完成划转)。的业务(如商品库存扣减、余额更新)。
2025-07-22 17:38:17
527
原创 一致性哈希:实现亿级数据秒级响应
当配合时间分区、用户哈希等多维分表策略时,即使面对海量数据,依然能保持毫秒级响应。这种"化整为零,精准定位"的设计思想,是应对大数据查询的效率核心。一致性哈希分表通过虚拟环智能路由,将10亿级数据查询分散到精确的物理表(如orders_202307),使单次查询仅需扫描。单表QPS从 1,200 提升到 18,500。单表数据量 > 500万行时性能断崖式下跌。99%查询延迟 < 100ms。查询P99延迟 > 300ms。高并发下数据库连接池耗尽。单表数据量 > 50GB。单表行数 > 500万。
2025-07-22 17:34:59
472
原创 过度管理:项目管理最大的内耗
在软件开发领域,最好的管理往往是"看不见的管理"。当团队不再需要时刻想着如何满足管理要求,当晨会变成自发的问题讨论,当流程手册被遗忘在角落——这才是管理真正的成功。记住德鲁克的箴言:"管理的本质是激发善意和潜能"。砍掉那些制造内耗的"伪管理",让程序员回归创造者的本位,或许才是提升交付效率的终极答案。
2025-07-04 17:08:13
443
原创 idea解决父组件jar包声明而无法下载问题
在IntelliJ IDEA中使用Maven时,如果在父POM文件中声明了jar包但子项目未使用这些jar包,这些jar包不会被自动下载。 这是因为Maven的dependencyManagement机制只在子项目中实际引用这些依赖时才会去下载相应的jar包。
2025-06-27 18:56:15
221
原创 什么是redission看门狗机制
Redisson 的看门狗机制是一个自动化、后台的锁续期守护线程。它在客户端获取锁(未指定租期时)后启动,定期检查并延长锁的持有时间,从而确保只要客户端还在运行且持有锁,锁就不会因为初始设置的过期时间到达而意外释放。这是 Redisson 分布式锁实现安全性和易用性的关键设计之一,有效防止了因业务执行时间过长而导致的锁失效问题。
2025-06-21 13:46:00
1022
原创 MySQL InnoDB更新流程
通过上述流程,InnoDB在高效处理更新的同时,确保了事务的原子性、一致性和持久性。:在内存中修改数据行,生成新版本,标记数据页为脏页(Dirty Page)。:脏页由后台线程(如Checkpoint)异步刷回磁盘,不影响事务提交速度。:将修改前的数据写入Undo Log,用于事务回滚和MVCC多版本读。:未提交的事务通过Undo Log回滚,保证原子性。:长时间未提交的事务可能导致锁等待,需优化事务粒度。:对目标行加排他锁(X锁),防止其他事务并发修改。:事务提交前,Redo Log可能按策略刷盘(如。
2025-06-10 16:25:59
548
原创 ruoyi-vue下拉框取字典表值回显问题
问题出现原因:后台返回的Intger类型,而前台字典使用的是String类型,所以造成回显值失败。将value的值用Number包起来,即。
2025-06-05 19:32:25
376
1
原创 工厂模式 + 模板方法模式 + 策略模式的适用场景
/ 文件生成策略接口// CSV 生成策略@OverrideSystem.out.println("生成 CSV 文件: " + data);// Excel 生成策略@OverrideSystem.out.println("生成 Excel 文件: " + data);// 模板方法:定义固定流程saveFile();// 抽象方法:由子类实现数据准备逻辑// 固定步骤:保存文件System.out.println("保存文件到服务器");
2025-06-05 19:32:08
666
原创 Redo Log断电恢复逻辑
若对应事务的Binlog已完整写入且刷盘,则认为事务应提交,执行Redo Log重放(若Binlog未写入或写入不完整,则认为事务未提交,执行回滚(若允许极小概率的数据丢失(如秒级异步复制),可适当降低参数值。,MySQL仍能保证数据不丢失(前提是Binlog已持久化)。:每次事务提交时Binlog刷盘(确保Binlog持久化)。此时事务视为未提交,Undo Log用于撤销内存中的修改。恢复时,通过Redo Log重放修改,保证数据一致性。:延迟刷盘,可能丢失最近N个事务的Binlog。
2025-05-26 10:43:26
514
centos7.9离线安装tigervnc-server-1.8.0-21.el7.x86-64.rpm(推荐)
2023-07-07
关于Java中常用加密/解密方法的实现
2018-09-30
jquery easyui TagBox with Autocomplete ajax请求方式自动填充
2017-07-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅