- 博客(211)
- 收藏
- 关注
原创 平衡树的左旋
好的,树的左旋(Left Rotation)是平衡二叉树(如 或 )中用于恢复平衡的一种基本操作。它通常是在右子树过高时进行,通过调整节点位置来降低高度。为了更直观地理解,我们来看一个左旋的示意图。下图展示了以节点P。
2025-08-30 15:57:02
293
原创 REST API 是无状态的吗,如何保障 API 的安全调用?
安全层面核心措施通信安全强制使用HTTPS身份认证JWT, OAuth 2.0访问授权RBAC,业务逻辑校验防滥用限流(Rate Limiting)数据安全输入验证,防范注入攻击稳健性安全的错误处理,日志监控保障REST API安全是一个“深度防御”的策略,需要将以上多种措施结合使用,形成一个完整的安全体系,而不能仅仅依赖某一种方法。
2025-08-30 15:53:58
250
原创 策略模式的核心思想
策略模式就是将“做什么”和“怎么做”分开,让“行为”可以像插件一样灵活替换,是应对变化、提升代码优雅度的重要手段。如你有具体业务场景想用策略模式优化,或想看 Spring / Java 代码中的实际应用,我可以继续为你举例!😊。
2025-08-28 23:50:58
569
原创 java去图片水印的方法
方法适用场景优点缺点推荐度覆盖/裁剪纯色背景或边缘水印简单粗暴,速度快破坏原图,适用场景有限★★☆☆☆颜色处理水印与背景色差大相对简单复杂背景效果差,痕迹明显★★☆☆☆OpenCV 修复绝大多数复杂场景效果最好,最智能需要集成第三方库,制作掩膜较麻烦★★★★★深度学习任何场景,要求极高效果潜力最佳极其复杂,需要大量资源和专业知识★☆☆☆☆给你的建议:首先分析水印:它是位于纯色背景上,还是复杂的图片上?是半透明的吗?
2025-08-28 23:49:43
1099
原创 Dubbo加标签方式
功能XML 配置方式注解方式(推荐)应用配置in YAML注册中心in YAML协议配置in YAML暴露服务引用服务启动开关自动加载XML给你的建议:如果是新项目,强烈建议直接使用 注解方式(),这是目前最主流和简洁的方式。如果是维护老项目,可能会遇到 XML 配置方式,了解这些标签的含义至关重要。希望这个详细的解释能帮助你!
2025-08-27 23:24:38
1182
原创 redis集群分片策略
Redis 集群采用基于 哈希槽 的分片策略,其核心优势在于:易于管理和扩展:16384 个固定槽简化了数据分布和节点管理。在线重分片:支持不停机地增加或移除节点,是实现高可用的基础。高性能:去中心化的设计避免了代理层的开销。灵活性:通过哈希标签可以控制相关键的分布,以支持必要的事务操作。这种设计使得 Redis 集群成为一个成熟、稳定、高性能的分布式内存数据库解决方案。
2025-08-27 23:23:11
672
原创 mysql优化-mysql索引下推
索引下推(ICP)是 MySQL 一项重要的查询优化技术,通过在存储引擎层对索引条件进行早期过滤,极大限度地减少了不必要的回表 I/O 操作和数据传输量,从而显著提升查询性能。它特别适用于使用联合索引时,WHERE子句中包含第一个索引列的范围条件以及后续索引列的等值/范围等条件的情况。理解 ICP 对于优化慢查询至关重要。
2025-08-26 21:53:08
1248
原创 应用发生 OutOfMemoryError: GC Overhead limit exceeded错误,你的排查思路和解决步骤是什么?
通过以上系统性的步骤,可以高效地应对此次故障,并从根本上提升应用的稳定性和健壮性。
2025-08-25 23:21:12
546
原创 crc16是什么算法
CRC16 是一种高效、可靠的错误检测算法,通过一种特殊的二进制除法得到数据的16位“指纹”。它广泛应用于网络通信(如MODBUS)、数据存储(如ZIP文件)等场景,以确保数据的完整性。在使用时,最关键的是要确保通信双方采用完全相同的CRC16标准参数。你可以使用在线的CRC计算器或编程语言中的相关库(如Python的crcmod、C#的等)来轻松计算它。
2025-08-25 23:20:05
356
原创 openFeign用的什么协议,dubbo用的什么协议
特性OpenFeignDubbo核心定位声明式 RESTful HTTP 客户端高性能 Java RPC 框架默认协议HTTP/1.1 (文本协议)Dubbo 协议 (二进制协议)序列化方式JSON (文本)Hessian2 等 (二进制)连接方式通常为短连接(HTTP/1.1可Keep-Alive)长连接性能相对较低(头部大,序列化效率低)极高(头部小,序列化效率高)通用性极强,跨语言、跨平台较弱。
2025-08-24 13:46:22
668
原创 Spirng Cloud Alibaba主流组件
graph TDA[外部请求/用户] --> G[Spring Cloud Gateway];subgraph “微服务集群”B[服务A] -->|注册/发现| N(Nacos Server);C[服务B] -->|注册/发现| N;D[服务C] -->|注册/发现| N;B -->|远程调用| C;C -->|远程调用| D;B -->|配置管理| N;C -->|配置管理| N;D -->|配置管理| N;B -->|限流降级| S(Sentinel Dashboard);
2025-08-24 13:45:38
663
原创 G1 (Garbage-First) 垃圾收集器详解
可控的停顿时间:可以设定明确的停顿时间目标。高吞吐量:整体效率很高。空间整合:基于“标记-整理”算法,不会产生内存碎片。灵活的堆内存管理:Region 模型使得新生代和老年代的大小不再固定,可以动态调整。G1 垃圾收集器通过将堆划分为 Region、使用 来记录跨代引用、以及优先回收垃圾最多的区域 (Garbage-First) 的策略,成功地在可预测的短暂停顿时间内实现了高吞吐量,并有效避免了内存碎片。它是处理大堆内存、低延迟要求的服务器端应用的理想选择。
2025-08-23 14:38:11
887
原创 详细说一说JIT
JIT(即时编译)是一种在程序运行时将频繁执行的字节码动态编译成本地机器码并进行深度优化的技术。它巧妙地平衡了启动速度和运行效率,通过利用运行时信息做出智能优化决策,使得高级语言能够在保持可移植性的同时,获得媲美原生代码的执行性能。它是现代虚拟机技术的基石。。
2025-08-23 14:31:38
648
原创 springboot自动装配原理
你只需要引入相应的 starter 依赖(它内部已经包含了对应的自动配置包和所需库的依赖),Spring Boot 就能自动配置好大部分基础设施(如数据源、Web MVC、缓存、消息队列等),你几乎无需或只需很少的配置即可开始编写业务代码。你的应用程序上下文构建完毕,包含了你项目中的 Bean、自动配置提供的 Bean(条件满足时)以及 Spring Boot 默认的基础设施 Bean。只有当这些注解中指定的条件满足时,对应的配置类或 Bean 才会被真正加载和注册到容器中。
2025-08-21 22:39:45
854
原创 C端高并发项目都有哪些
C端(用户端)高并发项目通常涉及大规模用户直接访问的服务,其核心挑战是。以下是一些典型的C端高并发项目类型和具体案例: 淘宝/天猫、京东、拼多多、亚马逊等大型综合电商;各垂直电商平台大促活动。 大促活动(如双11、618)开始瞬间,用户疯狂刷新首页或活动会场页。 热门商品(秒杀品)被大量用户同时查看。 秒杀/抢购活动开始时,海量用户同时点击“立即购买”或“结算”,创建订单。 用户完成下单后短时间内涌入支付系统。。
2025-08-20 20:42:15
910
原创 Pub/Sub是什么意思
Pub/Sub 通过主题广播+异步解耦的机制,成为构建高扩展性、松耦合分布式系统的基石。适用于需要事件驱动、实时广播、服务解耦的关键场景,是现代云原生架构的核心组件之一。
2025-08-20 20:39:44
650
原创 Redission是什么
Redisson = Redis + Java 分布式编程模型,通过将分布式系统问题抽象为本地对象操作:提升效率:省去 70% 的低级 Redis 命令拼接代码;增强可靠性:内置容错、重试、锁续期等生产级特性;扩展能力:提供分布式集合/锁/队列等开箱即用的解决方案。👉 一句话理解:如果你在 Java 项目中用 Redis,Redisson 能让分布式开发像写单机应用一样简单高效。
2025-08-19 21:43:37
1022
原创 排查Redis数据倾斜引发的性能瓶颈
分片因子动态化通过环境变量盐值+二次哈希,解决静态哈希导致的倾斜本地缓存三级防御Caffeine堆内缓存 → Redis集群 → 数据库逐级穿透保护空间换时间策略拆分大Key牺牲存储空间换取读性能0.5秒短时缓存容忍弱一致性自动弹性治理基于命中率动态调整本地缓存容量槽位分布实时监控自动报警💡 核心经验:数据倾斜本质是系统熵增现象,需通过动态分片、本地缓存、Key拓扑治理构建抗倾斜体系,而非一次性修复。
2025-08-19 21:42:54
1658
原创 mq存量消息如何处理
通过分级处理策略,可降低存储成本40%~80%,同时满足合规要求。对于金融级场景,建议采用 。温数据:HDD集群 + Alluxio加速(保留30天)热数据:SSD存储 + Kafka(保留3天)冷数据:S3/OSS 低频存储(保留7年)Connector 归档到对象存储。 模式实现永久可回溯消息存储。:非核心业务消息、日志类数据。同时设置时间和空间策略会触发。需配合死信队列处理过期消息。分布式计算引擎并行处理。(凌晨4点执行清理)审计强监管消息: 。
2025-08-18 22:09:56
1048
原创 linux系统查看ip命令
首选或ip a - 功能最全,最现代,几乎所有发行版默认安装,无额外依赖。次选/传统 - 熟悉度高,但可能需要手动安装软件包,正在被ip取代。快速脚本获取 - 超级简单获取所有非环回 IPv4 地址。NetworkManager 用户 - 集权管理工具的详细信息。
2025-08-18 22:06:29
701
原创 MQ迁移方案
通过此方案,可保障亿级消息量的迁移在4小时内完成,平均数据丢失率<0.001%。建议每次迁移前进行全链路压测,验证方案可靠性。:MirrorMaker2(Kafka)、Shovel(RabbitMQ)方案,支持热迁移和回滚。
2025-08-16 23:09:53
1006
原创 为什么要使用消息队列呢?
✅ 适用场景跨系统通信需解耦高并发需缓冲流量洪峰非核心逻辑可异步执行需要保证最终一致性❌ 不必使用简单单体应用,直接调用更高效对实时性要求极高(如高频交易)无法接受额外运维复杂度消息队列本质是分布式系统的“血液管道”,通过异步化、缓冲、解耦,让系统在复杂环境下依然保持弹性和可扩展性,是构建高并发、高可用架构的基石工具之一。
2025-08-13 23:47:08
599
原创 计算机网络体系结构
理解计算机网络体系结构就是掌握了互联网如何通过分层设计实现亿万物联网设备间有序通信的根本法则。这不仅是学术基础,更是运维、开发和安全工作的基石概念。无论你是解决无法上网的故障,还是开发分布式应用,它都能提供根本性的思考框架。
2025-08-13 23:42:19
904
原创 Redis 数据倾斜
Redis 数据倾斜指的是在 Redis 集群模式下,数据(以及相应的访问请求和负载)在各个分片(Shard)之间分布严重不均匀的现象。这会导致部分节点成为热点或超载,而其他节点资源闲置,最终引发性能瓶颈、高延迟、内存溢出、主从切换失败甚至节点宕机。
2025-08-11 23:32:57
1678
原创 springboot的基础要点
Spring Boot 的核心设计理念是 (Convention Over Configuration),旨在简化 Spring 应用的初始搭建和开发过程。
2025-08-10 16:17:25
438
原创 springboot骚操作
这些技巧展示了SpringBoot的深度定制能力,合理使用能让开发效率翻倍,但切记:。:支持动态变量、图片转ASCII、颜色编码(:单体启动慢的应用,可提升启动速度30%+无需JRebel也能热加载(生产慎用!SpringBoot启动时默认显示。:插件化系统、运行时热加载组件。:首次请求响应时间可能变长。扩展Actuator的。
2025-08-10 16:16:21
339
原创 如何搭建ELK
Filebeat(可选但推荐):轻量级日志收集器,部署在客户端节点。Logstash:日志处理管道(接收、解析、过滤、输出)。:分布式搜索引擎,存储和索引数据。Kibana:数据可视化 Dashboard。Kafka(可选,高并发场景):作为日志缓冲队列。⚠️ 最小化部署:可将 Logstash + ES + Kibana 装在同一台服务器(测试环境)。生产环境建议分离部署。
2025-08-09 23:00:42
1150
原创 在 Elasticsearch/Kibana (ELK Stack) 中搜索包含竖线 (|) 这类特殊字符的日志消息 (msg 字段) 确实需要转义
要搜索 ELK 日志的。
2025-08-08 22:01:15
1143
原创 $QAXHoneypot是什么文件夹
总之,“QAXHoneypot” 文件夹是奇安信安全技术(特别是蜜罐)的一个组成部分,用于增强系统的安全监控和威胁检测能力。“QAXHoneypot” 这个文件夹名称非常明确地指向。
2025-08-08 22:00:00
451
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人