自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(94)
  • 资源 (1)
  • 收藏
  • 关注

原创 开发笔记:写操作统一架构模式

│ Task ID 法:伪 AT 模式,简单场景够用 ││ 分布式事务:框架支撑,能力更全但不代表一定强一致 ││ 一致性强弱、异常策略:都是你根据业务决定的 ││ ││ 大公司做法: ││ - 不是所有业务都走缓存+批量 ││ - 核心链路同步强事务 ││ - 非核心链路异步+最终一致 ││ - 分场景、分级别、按重要性选策略 ││ ││ 没有银弹,只有取舍 │。

2025-12-20 01:56:56 327

原创 Java 锁机制完整学习笔记

锁类型争抢目标存储位置对象头 Mark Word对象内存布局state 状态变量AQS 堆内存。

2025-12-19 02:08:08 1508

原创 JUC(java.util.concurrent)完整学习笔记

线程池 = 装线程的集合,管理、复用、调度ForkJoinPool = 分治思想 + 工作窃取CompletableFuture = 集大成者→ 封装底层同步器→ 链式调用→ 不用手动写 CountDownLatch、Semaphore 等。

2025-12-17 02:12:25 780

原创 HTTP 版本演进史

版本年份核心改进解决的问题0.91991原始版本能用就行1.01996Headers、状态码、多方法基础功能完善1.11997持久连接、管道化、分块传输减少连接开销22015多路复用、头部压缩、服务端推送HTTP层队头阻塞32022QUIC、0-RTT、连接迁移TCP层队头阻塞、握手延迟。

2025-12-16 01:06:06 290

原创 Dubbo 与 HTTP 上下文传递机制详解

对比项HTTP存储位置Request 对象(可传递)ThreadLocal(线程绑定)生命周期跟随 Request 对象单次调用后清空跨线程✅ 传递对象即可❌ 需要手动复制连续调用✅ Request 不变❌ 每次需重新设置要点说明HTTP 上下文存储在 Request 对象中,天然支持传递Dubbo 上下文通过 RpcContext.Attachments 跨网络传递仅作为本地"暂存柜",不是传递载体发起调用时自动执行,注入上下文收到请求时自动执行,提取上下文。

2025-12-16 00:57:41 890

原创 数据库连接池

连接池就是一个资源管理工具类,在复用连接的基础上,可以通过切面(AOP)思想,叠加监控、安全、日志等增强功能。

2025-12-15 00:52:17 191

原创 登录态保持机制深度解析

场景方案单体应用本地 Map(最快)分布式应用Redis(共享存储)无状态偏好JWT(无需存储)快速开发Sa-Token(封装好了)

2025-12-15 00:44:19 227

原创 Seata 分布式事务:AT 模式 vs XA 模式深度剖析

维度AT 模式XA 模式锁的位置应用层(Seata TC)数据库层连接占用时间短(本地提交即释放)长(prepare 到 commit)一致性级别最终一致强一致隔离性全局锁(Seata 层)数据库原生锁非 Seata 事务访问❌ 有脏写风险✅ 安全高并发性能✅ 好❌ 较差回滚机制undo log 补偿数据库原生回滚AT vs XA 的核心区别:不是 "有没有 undo log"而是 "连接和锁占多久"AT:用完连接立刻还,锁存在 TC(内存/Redis)→ 高并发友好。

2025-12-15 00:20:44 1014

原创 一次性消息包

通过第三方服务器记录每个消息的打开次数,超过1次就拒绝,从根本上防止消息被重复使用。

2025-11-09 02:05:08 385

原创 java的jvm和外挂

Override运行时仍然是明文字节码javaagent可以在类加载时拦截反射仍然可用✅ JVM设计上就是开放的,无法真正防护✅ Attach API + 反射 = 外挂天堂✅ Java游戏稀少是市场选择的必然结果✅ Minecraft成功是因为"拥抱"了这种开放性✅ 现代游戏应该用C++客户端 + Java服务端“在Java中,没有什么是private的,只要你想,一切都是public的。做游戏 → 用C++/C#,Java做服务端。

2025-11-09 01:51:40 732

原创 Spring Test 事务管理笔记

Spring Test 的默认回滚→ 保持测试幂等性不加事务注解时,Service 层事务正常工作→ 适合数据初始化需要持久化数据时,使用或@Commit→ 明确意图避免在测试中使用try-catch吞掉异常→ 影响事务回滚。

2025-11-09 01:22:16 271

原创 pgsql的unnset语法和json的使用

/ 1. 小数据量可以Java过滤// 2. 大数据量必须SQL过滤// 3. 复杂逻辑用混合方案// SQL粗过滤.filter(u -> complexRule(u)) // Java精细过滤。

2025-11-09 01:17:18 684

原创 mysql索引

过滤能力优先INDEX idx_a(userid) -- 过滤到:5000行INDEX idx_b(userid, bankid) -- 过滤到:500行→ 选择 idx_b ✅(过滤能力强10倍)-- ❌ 完全冗余的例子-- 分析:-- idx_a 完全被 idx_b 覆盖 ← 冗余-- idx_b 完全被 idx_c 覆盖 ← 冗余-- 只需要保留 idx_c!优先级规则示例🥇 最高过滤能力最强🥈 次高覆盖索引🥉 第三索引大小更小过滤相同时,选小的4️⃣ 第四统计信息更准确。

2025-11-07 23:53:50 1048

原创 多线程事务

1. 虚拟线程的价值 ✅- Mount/Unmount机制- 故障隔离性强- 资源占用少2. XA vs AT的选择 ✅- 小任务量 → XA- 大并发 → AT- 不存在绝对的"谁更好"3. 通知延迟可忽略 ✅- 2-3ms(占比0.3%)- 虚拟线程更快- 同内存,无网络开销4. 资源浪费可接受 ✅- 连接池够用- 实际损失为0- "占用几个没关系"5. 锁占用影响小 ✅- 批量插入锁定新行- 其他事务访问概率低- 实际阻塞几乎为0。

2025-11-07 01:34:12 326

原创 平常遇到的问题

1.Arrays.asList( )返回的是不可变集合。

2025-10-21 20:03:52 92

原创 签名机制笔记

签名不是万能的安全手段,而是一环。你要把它放在:✅ 签名 + 鉴权(身份)+ 权限控制 + 传输加密 + 风控追责这五层组合下看待,才能构建真正稳固的安全体系。

2025-06-27 00:14:30 554

原创 异地租网笔记

异地租网不是“拉根线”那么简单,而是:跨公网建私通道、合理路由转发、IP规划配合,实现逻辑“同一局域网”的通信效果。

2025-06-24 12:49:57 569

原创 内网穿透的笔记

内网设备主动连接一个拥有公网 IP 的服务器,建立通道,使外网用户可通过该服务器访问内网服务。关键点说明主动连接内网无法被动接收外部请求,只能主动发起连接公网服务器作为“跳板机”或“中转服务器”,拥有公网IP注册映射关系内网服务注册其本地 IP + 端口,暴露给公网反向代理/转发公网服务器接收请求后,将请求“反向”通过已建立通道转发到内网内网穿透的核心不是“穿透”墙,而是内网主动打洞 + 公网转发代理,是逆向连接 + 动态反向代理的综合体。

2025-06-24 12:32:13 409

原创 索引参与sql方式

类型使用场景是否回表是否加速索引过滤WHERE 语句匹配字段可能✅ 快速定位行索引覆盖SELECT 字段都在索引里❌ 不回表✅ 非常快索引排序❌ 不用临时排序✅索引连接JOIN ON 连接字段可能✅ 快速连表索引优化主要通过过滤、覆盖、排序和连接四种方式参与查询性能提升,只要写法不违反 MySQL 的索引规则,几乎都能显著加速查询。

2025-06-24 11:10:07 312

原创 Mybatis坑

本笔记全面涵盖了逻辑删除(软删除)在等方法中的默认处理机制,适用于项目开发中对逻辑删除行为进行精准控制。

2025-06-14 10:47:21 340

原创 如何优化一条sql

优化策略改动影响推荐顺序缓存 + 读写分离 + 冷热分离极低✅ 第一阶段异步化 + 合表聚合低✅ 第二阶段分库分表 + 分布式数据库高❗第三阶段,慎重引入。

2025-06-12 13:07:33 683

原创 行锁机制见解

InnoDB 的行级锁是建立在“索引”之上的,是否真正加的是“行锁”而不是“表锁”,取决于你写的 WHERE 条件是否能命中索引。

2025-06-11 15:30:21 239

原创 本地回环 vs Unix 域套接字

本地回环是在“本地模拟网络”,而 Unix 域套接字是“内核内部直传”。所以在单机进程间通信时,Unix 域套接字显著更快。

2025-06-11 14:54:46 520

原创 手写消息中间件

持久化 = 将容器中的内存数据,同步到磁盘,确保宕机后可恢复。常见持久化方案:定时刷盘每次写入同步刷盘(低效但强一致)Write-Ahead-Log(WAL)模式分段写入日志文件(segment)✅中间件的本质是:容器结构 + 协议传输 + 策略保障✅容器只是数据的存放,协议决定了它的效率、稳定性、可靠性✅你要“手搓”中间件,搓的是协议,调的是容错,玩的是数据流动策略。

2025-06-11 14:47:35 332

原创 Nacos的手写笔记

功能模块关键数据结构线程安全策略接口路径注册中心服务发现同上同上注销服务同上同上配置中心/config/*(可扩展)如果你愿意继续手搓,也可以加上:服务实例健康检查(心跳机制)实例过期剔除(定时任务)服务权重与路由策略配置中心通知机制(监听器 / LongPolling)namespace└── group"dev"

2025-06-11 11:51:21 837

原创 Lombok @Data 与 Jackson 字段反序列化规则不一致

建议项内容字段命名password保持规范DTO、VO、PO 都遵循 JavaBean 标准避免问题不要随意首字母大写,Jackson/Lombok 默认行为不兼容统一工具@Data搭配时需特别注意字段名规范。

2025-06-09 16:45:24 371

原创 分布式系统一致性模型笔记

模型是否保证可读是否保证实时最新是否保证顺序适用场景强一致性✅ 一定✅ 一定✅ 一定金融交易、Zookeeper顺序一致性✅ 一定❌ 不一定✅ 一定多线程/多副本模型因果一致性✅ 一定❌ 不一定✅ 部分(有因果)社交平台会话一致性✅ 一定✅ 会话内❌移动应用单调读一致性✅ 一定❌ 不一定✅ 趋势新弱一致缓存最终一致性✅ 最终❌ 不一定❌DNS、Dynamo弱一致性❌ 不一定❌ 不一定❌缓存系统、CDN。

2025-06-09 14:03:05 518

原创 ID 生成方案深度笔记

目标推荐方案分布式趋势递增Snowflake 或 Leaf Segment不可预测性对外 ID 加密(Hashids)或 token 映射多节点部署使用统一时间服务或容忍回拨策略查询权限控制所有查询都要带 userId,并校验数据归属性能+安全Leaf Segment + ID 加密 是性能与安全的较优结合方案无论你选哪种发号策略,ID 本身不能承载权限语义。只有结合权限校验 + 加密映射,才能真正保障系统安全。

2025-06-09 10:38:51 999

原创 数据库一致性

避免脏读、脏写。牺牲。

2025-06-06 17:33:34 832

原创 Nacos笔记

由于写操作较少,且读取操作大多为本地容器的内存操作,因此无需引入额外的缓存机制来提升性能。的核心思想是在数据修改时,首先创建数据的副本,然后在副本上进行修改,直到修改完成后,再将原数据指向新的副本。由于数据是在本地容器中进行管理,Nacos 能够避免缓存层的额外开销,如缓存同步、缓存一致性和过期策略等。:Nacos 提供集中化配置管理,可以管理多个应用的配置,支持动态刷新配置,保证各个应用的一致性。:通过本地容器直接管理数据,避免了缓存带来的复杂性和一致性问题,保证了数据的实时一致性。

2025-06-06 17:27:27 653

原创 对一部分框架的看法

(如Spring Boot、Spring Cloud)通过对Spring框架的封装,简化了开发,尤其是在微服务架构下提供了自动化配置、服务治理等功能。(如Kafka、RabbitMQ)是基于网络通信框架(如Netty)进行封装,提供了更高层次的功能,如消息队列、持久化、消息确认等。:Nacos不仅是配置中心,也是服务注册与发现中心,类似Spring的容器化管理,提供了动态配置、服务发现等功能。:对Netty进行更高层次的封装,提供消息传递、持久化、流量控制等功能,适用于分布式系统中的解耦与高吞吐量需求。

2025-06-06 17:19:17 313

原创 幂等性的实现

命令实现,避免了加锁带来的性能瓶颈,同时能够确保高并发环境下只处理一次消息。在消息处理中,确保幂等性意味着即使消息被重复消费,系统也不会重复处理。在极端高并发的情况下,如果某些消息的处理时间较长,可能会存在一些延迟或 Redis 请求超时的问题,但通常情况下影响较小。与传统的加锁方式相比,利用 Redis 的原子操作(SETNX)避免了加锁带来的性能瓶颈,适用于高并发场景。通过设置过期时间,确保 Redis 中的处理记录不会永久存储,避免内存积压和泄漏。返回成功(即消息未处理过),执行相应的业务处理。

2025-06-06 17:05:38 629

原创 消息中间件的通信和丢失问题

网络通信和分布式系统的设计不能做到百分百不丢失数据,只能通过协议优化、容错机制、冗余设计等手段降低丢失的概率。特别是在分布式系统中,由于网络波动、节点宕机、磁盘故障等原因,数据丢失的概率始终存在。:Kafka等系统通过分区副本来保证数据的高可用性,即使某个节点宕机,数据也能从其他副本中恢复。,如增加更多的 Broker 节点、分区、副本等,以提高系统的可用性和稳定性。:没有重传机制,适用于对实时性要求较高的场景,但数据丢失的风险较大。等设计,提高了消息的可靠性,但仍无法避免在极端故障下的数据丢失。

2025-06-06 17:01:25 425

原创 Mybatis的坑

更新该字段的值到数据库。注解标识的字段来实现,默认情况下会在查询时忽略掉软删除的记录。MyBatis-Plus 不会自动处理已软删除的数据,除非使用。:MyBatis-Plus 默认情况下,不会对已软删除的数据(这意味着,如果你的数据库中有一条记录的。:MyBatis-Plus 默认情况下,如果实体类的字段为。,可以在 MyBatis-Plus 配置中进行设置,允许。:MyBatis-Plus 提供的软删除功能基于。传入查询条件,否则这些操作会跳过已软删除的记录。,使用 MyBatis-Plus 提供的。

2025-06-06 16:35:58 1111

原创 MQTT 协议笔记

核心理念:引入中间件(Broker)思想MQTT 采用发布/订阅架构,消息通过 Broker 统一管理,发布者和订阅者之间解耦,简化设备通信复杂度,提升系统可扩展性和灵活性。极简消息格式,缩短消息体设计极简报头,最小报文仅2字节,减少网络传输数据量,降低低资源设备和低带宽网络的压力。消息级别的可靠传输机制(QoS)在基于 TCP 的可靠传输基础上,MQTT 定义三种 QoS 等级,确保消息“不丢失、不重复、不乱序”,特别是 QoS 2 保证消息恰好一次传递,满足物联网设备对消息语义的严格要求。

2025-06-04 11:39:22 871

原创 链路追踪的理解

链路追踪通过统一的 TraceId 贯穿所有服务调用,生成每个节点的 Span 并上报,实现完整调用链的跟踪与分析。它依赖于上下文传递机制,不干扰业务协议主体,通过请求头或元数据携带追踪信息,构建清晰的调用拓扑和性能视图。是现代分布式系统不可或缺的监控与诊断利器。

2025-06-04 11:20:12 798

原创 http演化过程

好的,我给你把HTTP演化过程梳理清楚,再详细讲多路复用的机制和它的传输特点。

2025-06-04 11:04:14 454

原创 rpc协议

在同一个物理连接(如 TCP 连接)上,同时并发传输多个独立的请求和响应消息流。

2025-06-04 10:51:42 995

原创 rpc框架主体思想

步骤接口级注册模块级注册1. 请求接收接收客户端请求接收客户端请求2. 服务定位从注册中心获取接口对应实现,或依赖Spring容器查找从本地维护的服务容器定位接口实现3. 方法调用反射调用接口实现方法容器内实例直接调用接口实现方法4. 返回结果返回调用结果返回调用结果客户端调用接口的代理方法。代理封装请求,查询注册中心获取服务地址。选取服务实例,发送网络请求。服务端处理请求,执行接口实现。返回结果给客户端代理。客户端代理返回结果给调用者。

2025-06-04 10:41:58 369

原创 rpc协议,rpc框架和openfeign

OpenFeign 曾在 Dubbo 尚未现代化时,用 HTTP + 注解的方式提升了微服务开发体验,解决了“RPC 框架不够好用”的问题;而现在 Dubbo 2.7+ 和 3.x 已全面升级,支持 Spring Boot、跨语言、现代协议和云原生,不仅不落后,反而在某些场景优于 OpenFeign。

2025-05-26 11:13:05 469

eg2-1.exe

eg2-1.exe

2022-09-21

空空如也

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

TA关注的人

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