vault backup: 2026-03-08 20:45:50

This commit is contained in:
asskicker0214 2026-03-08 20:45:50 +08:00
parent f0c9a658a4
commit fb4d004c67
1 changed files with 63 additions and 34 deletions

View File

@ -1,41 +1,70 @@
# 基本信息
**姓名** 乔洪波
**邮箱** asskicker0214@outlook.com
**电话** 19521253015
**微信** 18951859502
# 专业技能
- 有丰富的 Java 编程经验,熟练使用 Netty、JUnit此外可以使用 Python 做脚本编写,可以使用 Vue 做前端开发
- 作为公司内部微服务调用框架的核心开发,在并发、性能、稳定性方面有丰富的经验
- 经常协助业务系统进行生产排障,有丰富的故障排查经验(和直觉 :D
- 熟悉 GitLab可以组织起小型团队构建可靠的、现代化的工作流程
- 熟悉云原生相关的技术如容器化、K8s、Istio、Prometheus
# 教育经历
- `2013/09` ~ `2017/06` 南京大学 · 软件工程 (本科)
- `2017/09` ~ `2019/06` 南京大学 · 软件工程 (硕士研究生)
# 乔洪波 — 资深后端&微服务工程师
> *在校获得优秀毕业生称号*
# 工作经历
- `2019/07` ~ `至今` 中国银联
**邮箱** asskicker0214@outlook.com • **电话** 19521253015 • **微信** 18951859502
# 项目经历
银联自 2018 年起开始研发新一代微服务调用框架,用以替代现存基于 Dubbo 定制开发的框架。截至 2026 年初,公司内部所有重要系统均已基本完成接入或迁移,新框架已承接公司全部的资金类交易,经受住大量业务调用和长时间稳定性的考验。我们内部将该框架称为 Service Mesh我的工作也主要围绕它展开
## 简介
具有 7 年以上 Java 后端和分布式系统经验,专注于微服务调用框架、性能优化与可靠性工程。深度参与公司核心微服务框架的设计与实现,强调测试覆盖、生产可观测性与零缺陷投产。
### 服务注册发现中心的重构
`2022年`
在银联最核心的系统(转接)迁移前一年 (2022年),注册发现中心 Pilot 出现了代码腐化的迹象。由于定制化需求越来越多Pilot 的处理流程越来越难以理解。在尝试修复一个生产缺陷时,很容易引入另一个生产缺陷。仔细分析后,我们认为小修小补无济于事,必须连根拔起完全重构。重构这件事是被部分人反对的,我作为重构的主要推动者和实施者(提交了 50% 以上的代码)面临着非常大的风险和压力。本次重构仅限于 Pilot 模块内部,必须保证和其他模块、业务系统完全兼容。借助多年积累下来的比较完善的自动化测试,以及生产真实流量的重放验证,上线后零生产问题。新的设计不仅达到了完全的兼容性,各接口性能也得到了(无心插柳式的)提升 —— 注册类提升 100%,发现类提升 30%
## 核心技能
- **语言与框架:** Java, JUnit, MockitoPythonVue.js
- **系统与中间件:** Redis, Zookeeper
- **云原生:** Kubernetes、容器化、Istio、Prometheus
- **工程实践:** 高并发设计、性能调优、自动化测试与生产流量回放、故障排查
### Spring Boot Starter 开发
`2023年` ~ `至今`
与 Istio 等服务网格解决方案不同,公司内部的服务网格没有采用流量劫持的方案,而是采用轻量级 SDK + 边车来实现流量转发Java 语言的新一代 SDK 由我负责开发(代码量占 95% 以上。SDK 采用分层设计,靠下的各层与 Spring 解耦,可以脱离 Spring 使用,避免了 gRPC starter 那种完全与 Spring Boot 绑定 的模式;且完全舍弃了旧版的 Java SDK在开发初期就充分考虑了可集成性避免了 Dubbo Starter 为了适配 Spring Boot 而产生的那种厚重的胶水层。SDK 使用 Mockito + JUnit 编写了近千个单元测试,自 2023 年发布以来已被 200+ 业务应用集成,至今零生产缺陷。
## 教育背景
- 南京大学 — 软件工程 本科2013/09 — 2017/06
- 南京大学 — 软件工程 硕士2017/09 — 2019/06`优秀毕业生`
### 服务网格容器化支持
`2022年` ~ `至今`
公司内的服务网格没有按照 CNCF 推荐的路线图发展,出于一些原因,我们先在虚机上面进行了服务网格化,然后才逐步对各服务进行容器化。我们采用了向 Pod 自动注入边车的方式,即借助 K8s API Server 提供的 Web Hook 机制,拦截 Pod 创建请求,篡改 Pod 配置并向其添加边车容器。
## 工作经历
- **中国银联** — 后端工程师 2019/07 — 至今)
- 核心贡献者,参与并主导公司新一代微服务调用框架(内部称 UPMesh和 Java SDK 的设计与实现。
- 主要成果:
1. 逆转注册发现中心代码腐化的趋势,完成重构和不停机上线,上线后零缺陷
2. 负责微服务调用框架 Java SDKSpring Boot Starter设计与实现代码量占比 >95%,已被 200+ 应用集成,发布后至今零生产缺陷。
3. 推进微服务框架容器化落地,基于 K8s Admission Webhook 实现 Pod 边车自动注入。
4. 牵头数据转移组件订阅端开发,带领 4 人团队,支持 DB→DB/消息队列/TCP 的多路转储、形变与一致性校验。
## 代表性项目
### 1. 公司级注册发现中心重构 (2022) - `质量保证` `重构` `分布式系统`
注册发现中心 Pilot 是公司级的中间件,维护了 30000+ 服务节点的元信息。
公司内所有涉及资金的业务系统均在 Pilot 上进行注册发现。
**面临的问题**
1. 注册发现中心出现代码快速腐化的迹象,生产缺陷频发
2. 可读性差,难以应对未来的功能迭代
3. 架构设计有瓶颈,容量有风险,业务隔离性差
**采取的措施**
1. 顶住压力果断重构(架构和代码两个层面)
2. 进行严格的回归测试、流量重放测试
**取得的效果**
1. 上线后无兼容性问题,无生产缺陷
2. 接口性能提升了 30% ~ 100%
3. 代码腐化现象被抑制2022 年至今仅 1 个生产缺陷
### 2. 微服务 SDK 开发 2023 — 至今)`Java` `SDK` `高性能` `高并发`
设计并实现了服务发布和调用的 Java SDK主要特性如下
1. 分层设计,可以与 Spring, Spring Boot 结合,也可以单独使用
2. 支持流式传输、优雅启停、RPC 调用等功能
3. 使用 JUnit + Mockito 构建近千个单元测试,使用 docker 构建 30+ 场景的集成测试
现已被 300+ 模块集成,无生产缺陷
### 3. 容器化实践 2022 — 至今)`K8s` `Docker` `云原生`
为了解决语言异构的问题,业务系统互相通信时均通过边车进行转发,各语言只维护轻薄的 SDK。在虚机上边车是一个独立进程容器环境中我们基于 K8s API Server 的 Webhook 机制,拦截业务系统的 Pod 创建请求,自动向其中加入边车容器。
### 4. 数据转移组件2024 — 至今)`小组领导`
公司内部分业务系统有分享(发布/订阅数据的需求功能包含任务控制模块数据形变、Lua 脚本集成、一致性比对等。
Java 语言的订阅端由我带领一个 4 人小组实现,我的工作主要有:任务分解、代码评审
TODO 扩充
效果:零缺陷、新人成长快
### 5. 自研集成测试工具2019 — 至今)`Side Work` `测试套件` `AI 编程`
Taurus 是一个比单元测试粒度更粗的自研测试工具,属于为了支持日常开发而演化出的副产品。
它与单元测试互为补充,为团队内各系统的质量保驾护航。后期我们使用 AI (Vibe Coding) 为其编写了 VSCode 插件,进一步提升了易用性。
### 数据转移组件
`2024年` ~ `至今`
公司内部分业务系统有分享数据的需求,简单来说,需要将一个数据库中的数据转移到其他系统的数据库、消息队列或作为 TCP 请求发送。数据转移不是简单的复制,而是需要进行形变、过滤、加解密等操作,此外还需控制转移任务的启停与一致性比对等等。我有幸可以带领一个 4 人的小组开发订阅端模块(及 SDK我们的其中一个用户也恰好是公司两大核心业务之一的清算系统。
### 集成测试工具
`2019年` ~ `至今`
集成测试框架是我日常工作中的一个 Side Work它的诞生是为了解决三个问题第一个是单元测试并不总适合所有项目第二个是公司内部大量使用私有协议无法直接使用 Postman 等现有工具;第三个是一些现有工具(如 jmeter不是基于文本组织案例的难以使用 Git 管理。我从入职以来就一直持续设计和迭代自实现的测试工具,测试案例使用纯文本编写,使用各种指令来组合测试流程。这些指令背后使用 Java 实现工具预置了基本的指令发送HTTP请求且支持实现自定义指令。它可以在本地执行也可以以 Web 的方式做平台化部署。支持定时执行案例、生成覆盖率报告、导出 Excel、发送邮件、Gitlab MR 合并前编译测试等功能。该测试工具虽然不是正式产品,但也在被部分团队使用、或集成进其他系统。