MingJunDuan的博客
热爱可抵一切,探索未知之境
全站访问量 次

Dubbo RPC 中 Hessian 序列化协议深度剖析 —— 从原理到线上问题

在 Dubbo RPC 调用中,对象是怎么从 Consumer 的内存变成 Provider 的内存里的?中间那一段二进制字节流到底长什么样?当你面对 “Cannot deserialize”、”enum 反序列化后变成 null”、”泛型集合类型丢失”...

日志脱敏:从注解到自动化的完整实现

线上日志里打印了用户手机号、身份证号、银行卡号——这是每个后端工程师的噩梦。GDPR、《个人信息保护法》之下,日志脱敏已经从”最佳实践”变成了”合规红线”。 但现实中,大部分系统的脱敏策略是这样的: // 方式 1: 手动拼字段(字段多了要命) logger.info("user: name={}, phone={}, email={}", user.getName(), maskPhone(user.getPhone()),...

SLF4J 原理深度剖析 —— 从日志门面到绑定机制

每个 Java 工程师都写过 LoggerFactory.getLogger(Xxx.class),也见过 log.info("hello {}", name)。但当线上同时引入了 log4j 和 logback 的 jar...

Elastic-Job 分布式定时任务深度剖析 —— 从概念到原理

定时任务是后端开发中最常见的需求之一。单机时代,一个 cron 表达式加上 @Scheduled 就能解决问题。但当服务集群部署后,问题立刻复杂起来:谁执行?执行几次?执行节点宕机了怎么办? Elastic-Job 是当当网开源(现为 Apache ShardingSphere 生态)的分布式任务调度框架,Lite 模式以去中心化 +...

Dubbo 与 SOFA RPC 的 ZooKeeper 断连容灾机制深度对比

ZooKeeper 挂了怎么办?这是每个用 ZK 做注册中心的团队必须回答的问题。Dubbo 和 SOFA RPC 作为国内最主流的两大 RPC 框架,都用 ZK 做服务发现,但它们的容灾策略有本质差异。...