-
内容大纲
本书以服务稳定性建设与技术债务治理为主线,深度剖析Java服务全生命周期中的关键问题与解决方案,通过“问题诊断-治理框架-实践落地”的三层递进结构,构建了覆盖技术架构、资金安全、组织效能的完整技术治理体系。
本书总计7章。第1~2章从Java服务的常见线上问题切入,系统讲解针对内存泄漏、线程死锁、MySQL慢查询等疑难问题的5why原因分析法与根治方案,并且基于JVM内存模型与线程的原理,建立预防性优化机制,其中还讲解了“稳定性治理三维模型”(意识培养-能力建设-系统保障),并结合Prometheus监控体系,打造了从被动“救火”到主动防御的高可靠工程体系。第3~5章构建了资金安全防护的“双闭环”机制,即在业务侧通过三流合一、平衡性约束等金融级设计来确保业务逻辑正确,在技术侧通过分布式事务、幂等设计等技术方案来确保数据一致,通过业业、业会、会会、账实核对来实现资损的分钟级发现,并且聚焦领域驱动设计,通过会员系统建模实战来演示技术债务的治理路径,讲解了彩色建模、事件风暴等五大领域建模方法工具箱。第6~7章解构高并发供应链系统架构,涵盖分库分表、熔断降级等分布式架构的核心模式,特别给出补偿事务、事务消息等一致性方案的选型决策树,还整合大模型技术,详解LangChain等开发框架与AI编程助手的应用,构建了从Prompt工程到知识库设计的大模型应用程序开发范式。
无论是新手还是经验丰富的工程师,都能从本书中获得宝贵的知识和经验,提高自己解决问题的能力,构建更加稳定和高效的系统服务。 -
作者介绍
-
目录
第1章 Java服务常见线上问题应急攻关
1.1 为什么程序员天天都在“救火”
1.2 Java内存案例分析
1.2.1 案例介绍
1.2.2 5why原因分析
1.2.3 类似问题的解决办法
1.3 JVM内存模型
1.3.1 JVM的内存架构
1.3.2 JVM进程的物理内存架构
1.3.3 常见的内存问题
1.3.4 预防内存问题的方法
1.4 线程死锁案例分析
1.4.1 案例介绍
1.4.2 原因分析
1.4.3 问题排查
1.5 Java线程的原理及优化方法
1.5.1 Java线程的状态
1.5.2 Java线程加锁的原理
1.5.3 Java线程、本地线程、内核线程及JDK线程模型
1.5.4 如何预防线程死锁
1.6 MySQL慢查询案例分析
1.6.1 问题案例
1.6.2 5why原因分析
1.6.3 MySQL存储引擎的原理
1.6.4 MySQL慢查询问题排查
1.6.5 如何预防MySQL慢查询
第2章 服务稳定性治理
2.1 服务稳定性治理的目标
2.2 服务稳定性的度量标准
2.3 服务稳定性治理的方法
2.4 如何做好服务稳定性治理
2.4.1 提升团队的意识
2.4.2 提升团队的设计能力
2.4.3 提升服务的可靠性
2.4.4 提升服务的可用性
2.5 服务稳定性可观测能力建设
2.5.1 关于日志打印的最佳实践
2.5.2 使用APM工具进行全链路追踪
2.5.3 可观测性指标体系建设
2.5.4 搭建Prometheus监控系统
第3章 资损风险分析与治理
3.1 为什么资损事故频发
3.2 资金安全相关的合规问题及要求
3.2.1 二清合规问题
3.2.2 三流合一
3.3 资损的核心指标
3.3.1 理论资损金额
3.3.2 实际资损金额
3.3.3 财务差异金额
3.4 资损的核心指标计算规则
3.5 如何确保业务逻辑正确
3.5.1 如何确保金额计算无误
3.5.2 如何确保额度控制得当
3.5.3 资金的流动满足平衡性约束
3.5.4 如何确保流程状态正确
3.5.5 如何确保时效性
3.6 如何确保技术方案正确
3.6.1 上下游数据的一致性
3.6.2 数据库与缓存数据的一致性
3.6.3 消息队列中消息处理的正确性
3.6.4 定时任务处理的正确性
3.7 如何避免人为操作风险
3.8 如何及时发现资损风险
3.8.1 梳理资损链路风险
3.8.2 监控核对机制
3.8.3 什么是业技核对
3.8.4 什么是业会核对
3.8.5 什么是会会核对
3.8.6 什么是账实核对
3.8.7 核对评估指标
第4章 通过故障演练主动发现潜在的风险
4.1 为什么“黑天鹅事件”不断出现
4.2 故障演练的类型及方法
4.2.1 故障演练的类型
4.2.2 故障演练的方法
4.3 ChaosBlade的原理与实践
4.3.1 ChaosBlade的架构
4.3.2 ChaosBlade的安装和应用
4.3.3 ChaosBlade支持的调用方式
4.3.4 ChaosBlade中的常用命令
4.3.5 ChaosBlade的原理
4.4 ChaosBlade - Box故障演练
4.4.1 ChaosBlade - Box的安装
4.4.2 ChaosBlade - Box的应用
4.5 Redis缓存故障演练案例
4.5.1 故障演练方案设计
4.5.2 常见的缓存优化方案
4.6 MySQL故障演练案例
4.6.1 故障演练方案设计
4.6.2 MySQL高可用实战
第5章 会员系统的模型债务治理
5.1 技术债务产生的原因
5.2 技术债务的治理方法
5.3 如何做好会员系统的业务建模
5.3.1 会员系统的业务分析
5.3.2 使用用例进行业务建模
5.3.3 会员系统的非功能需求分析
5.4 如何进行会员系统的领域建模
5.4.1 关于领域建模的一些基础知识
5.4.2 领域建模方法1:重用和修改现有的模型
5.4.3 领域建模方法2:用例驱动设计
5.4.4 领域建模方法3:彩色建模(FDD)
5.4.5 领域建模方法4:领域驱动设计
5.4.6 领域建模方法5:事件风暴(Event Storming)
5.4.7 将设计模式应用于领域模型
5.5 如何做好会员系统的架构设计
5.5.1 通过领域驱动设计规划会员系统的架构
5.5.2 通过领域驱动设计实现会员领域模型
5.5.3 通过适配器和防腐层隔离技术细节
第6章 供应链系统的架构债务治理
6.1 为什么客诉和工单不断
6.2 餐饮供应链系统中的问题梳理和分析
6.2.1 餐饮供应链系统中的核心业务场景
6.2.2 问题梳理和分析
6.3 通过领域划分治理烟囱化服务
6.3.1 识别领域
6.3.2 定义领域模型
6.3.3 设计领域服务
6.4 分布式系统中的数据不一致问题
6.4.1 数据库分布式事务
6.4.2 两阶段提交(2PC)
6.4.3 三阶段提交(3PC)
6.4.4 补偿事务(TCC)
6.4.5 事务消息
6.4.6 数据库中数据一致性的落地方案
6.5 保障系统上下游链路的稳定性
6.5.1 对下游服务的熔断降级
6.5.2 接口调用限流优化
6.5.3 实现接口幂等机制
6.6 系统的高并发性能保障
6.6.1 数据库的分库分表设计
6.6.2 使用缓存提升服务并发性能
第7章 大模型应用程序开发实战
7.1 大模型简介及其应用场景
7.2 用AI工具提升研发质量和效率
7.2.1 AI编程助手简介
7.2.2 使用AI编程助手自动补全代码
7.2.3 使用AI编程助手检测代码Bug
7.2.4 使用AI编程助手生成单元测试代码
7.2.5 使用AI编程助手做代码评审
7.3 基于大模型开发应用程序
7.3.1 基于大模型开发应用程序的流程
7.3.2 任务链设计
7.3.3 Prompt设计
7.3.4 知识库设计
7.3.5 评测优化
7.4 大模型应用程序开发框架
7.4.1 调用OpenAI API的方法
7.4.2 LangChain
7.4.3 Semantic Kernel
7.4.4 Spring AI
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-

孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-

时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-

本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...
[
