作者 |
李海翔 等 |
丛书名 |
数据库技术丛书 |
出版社 |
机械工业出版社 |
ISBN |
9782111021150 |
简要 |
简介 |
内容简介书籍计算机书籍 ---------------------------8084477 - 分布式数据库原理、架构与实践--------------------------- 本书从原理、结构和案例三个维度深度剖析了如何设计一款分布式数据库。本书内容以腾讯金融级分布数据库TDSQL的研发过程为基础,深入分析了分布式数据库的底层运行原理、核心实现技术、完整架构和经典案例,其中重点分析了一致性问题。一致性问题也是设计分布式数据库时面临的主要问题,可以说只要完美解决了一致性问题,那一款高可用的分布式数据库的设计工作就已经完成80%了。 本书共分为三篇: 第*篇——原理篇(第1~4章):本篇先罗列出设计一款分布式数据库需要面对的挑战都有哪些,然后指出分布式设计的基本理论,*后总体分析了一致性问题的本质是什么;然后用一章的篇幅深入分析了不同类型的一致性问题的特点、本质和出现的根本原因,这为解决一致性问题奠定了基础;接着分了解决一致性问题的具体方案,并指出各种方案的重点和原理;*后则总体介绍分布式事务的原理和多种实现技术。 第二篇——架构篇(第5~6章):本篇以分布式事务处理技术作为主线,深入讨论了与分布式数据库架构相关的内容。其中,第5章从数据库架构的角度,对高可用性、可扩展性、存算分离架构解耦等影响架构的经典技术进行讨论;第6章从数据库架构的角度,对新硬件、云计算、微服务等影响架构的新技术进行深入分析。 第三篇——典型案例篇(第7~10章)本篇通过对业界经典案例的分析,帮读者夯实对架构、事务处理技术等内容的理解。本篇首先Spanner开始,探索其分布式架构、强一致性技术和事务处理技术。接下来对Percolator事务技术和开源数据库CockroachDB的分布式架构、事务处理技术、因果一致性进行讨论。*后,还对内存型数据库Hekaton、文档型分布式数据库MongoDB、分布式列存数据库HBase等数据库产品进行了分析。 ---------------------------8084385 - 深入理解分布式事务:原理与实战--------------------------- 内容简介 本书的广度与深度兼备、理论与实战兼顾的分布式事务专著,它从基础知识、解决方案、原理分析、源码实现、工程实战5个维度对分布式事务做了全面、细致的讲解,试图解决你在实践中遇到的所有关于分布式事务的问题。 两位作者都是分布式事务领域的资深架构专家,是Apache ShenYu(incubating)网关创始人、Hmily、RainCat、Myth等分布式事务框架的创始人。本书因为内容扎实,所以得到了来自京东、阿里、腾讯、蚂蚁金服、滴滴、饿了么、58集团、IBM等互联网大厂及Apache软件基金会的近20位专家的高度评价。 . 基础知识维度:首先全面介绍了事务和分布式事务的概念和基础知识,然后详细讲解了MySQL事务和Spring事务的实现原理; 解决方案维度:详细介绍了分布式事务的各种解决方案,包括强一致性分布式事务解决方案和Z终一致性分布式事务解决方案; 原理分析维度:详细讲解了分布式事务的原理,包括XA强一致性分布式事务、TCC分布式事务、可靠消息Z终一致性分布式事务和Z大努力通知型分布式事务的原理。 源码实现维度:深入分析了Atomikos,Narayana框架实现XA强一致性分布式事务解决方案的源码,以及Dromara开源社区的Hmily分布式事务框架实现TCC分布式事务的源码; 工程实践维度:通过多个在生产环境中经历了高并发、大流量考验的综合案例,讲解了XA强一致性分布式事务、TCC分布式事务、可靠消息Z终一致性分布式事务和Z大努力通知型分布式事务的工程实践方法。 全书配有大量流程图和原理图,便于读者阅读理解;精选了大量来自生产环境的完整案例及其代码,便于读者动手实践。阅读本书,你将体验到事半功倍的效果。 |
目录 |
[套装书具体书目] 8084385 - 深入理解分布式事务:原理与实战 - 9787111692232 - 机械工业出版社 - 定价 119 8084477 - 分布式数据库原理、架构与实践 - 9787111691617 - 机械工业出版社 - 定价 99 ---------------------------8084477 - 分布式数据库原理、架构与实践--------------------------- 第一篇 分布式书库系统原理篇 1 第1章 分布式数据库系统的挑战和原理 1 分布式数据库系统的挑战 1 1.1.1 分布式系统面临的问题 3 1.1.2 数据库面临的一致性问题 7 1.1.3 分布式数据库系统面临的问题 18 1.2 分布式理论 25 1.2.1ACID、BASE与CAP 26 1.2.2CAP分布式理论 29 1.2.3 PACELC理论和CAP新进展 38 1.3 分布式系统一致性的本质 39 1.3.1 偏序与全序 40 1.3.2有序与并发 40 第2章 深入研究一致性 43 2.1 概述 43 2.1.1 常见的分布式一致性 45 2.1.2 对一致性的研究 50 2.1.3 一致性分类 53 2.2 结果一致性 53 2.2.1 共识问题形象化描述:拜占庭将军问题 54 2.2.2 结果一致性的应用 55 2.3 次序一致性 56 2.3.1 线性一致性 58 2.3.2 顺序一致性 60 2.3.3 因果一致性 60 2.3.4 会话一致性 62 2.4 分布式事务一致性 63 2.4.1单机事务的一致性 63 2.4.2 分布式事务的一致性 67 2.4.3 分布式一致性与分布式事务一致性的关系 68 2.5 架构一致性 69 2.5.1 分布式系统主备一致性 70 2.5.2 去中心化的分布式系统一致性 71 第3章 一致性问题的解决方案 72 3.1 依赖物理时间存在的问题 72 3.1.1不可信的物理时钟 73 3.1.2典型案例——日志问题 74 3.2 逻辑时钟 75 3.2.1 从因果模型到逻辑时钟 76 3.2.2 逻辑时钟的缺点 77 3.3 向量时钟 79 3.4 混合逻辑时钟 81 3.5 Paxos共识协议 84 3.5.1 Paxos所解决问题的背景 85 3.5.2 Paxos中的角色 86 3.5.3 Basic Paxos共识协议 88 3.5.4 Paxos共识协议改进与扩展 90 3.6 Raft共识协议 97 3.6.1 Raft算法基础 98 3.6.2 Raft算法 100 3.6.3 Paxos与Raft的比较 104 第4章 分布式事务原理 109 4.1 概述 110 4.1.1 单机事务处理技术 110 4.1.2 分布式事务处理技术 114 4.2 基本的分布式事务并发访问控制机制 120 4.2.1 封锁并发访问控制算法 121 4.2.2 TO相关算法 122 4.2.3 CO算法 124 4.3 OCC技术 128 4.3.1 OCC算法的优势与不足 129 4.3.1 2 基本的OCC算法 131 4.3.2 3 改进的OCC算法 139 4.3.3 4 OCC与其他并发算法 147 4.3.4 5 分布式OCC算法 155 4.3.6 OCC扩展 160 4.4 MVCC技术 160 4.4.1 MVCC解决了什么样的问题 161 4.4.2 MVCC算法 162 4.4.3 Serializable Snapshot Isolation 165 4.4.4 Write-snapshot Isolation 170 4.4.5 MVCC实现示例 174 4.4.6 MVCC扩展 183 4.5 前沿的并发控制技术 184 4.5.1 动态调整时间戳算法 185 4.4.2 Data-driven算法 192 4.4.3 面向列的细粒度机制 196 4.5.4 基于硬件的改进 197 4.5.5 基于AI的改进 202 4.5.6 自适应算法 203 4.6 分布式提交技术 208 4.6.1 两阶段提交 208 4.6.2 三阶段提交 212 4.6.3 基于Paxos的提交 214 4.6.4 一阶段提交 216 4.7 可串行化发展历史 217 4.8 其他 222 4.9 小结 224 第二篇 分布式数据库架构篇 225 第5章 去中心化的分布式数据库架构 227 5.1 分布式存储架构 227 5.1.1数据分布 228 5.1.2数据管理 229 5.1.3多副本与数据存储 232 5.1.4存算分离 232 5.1.5多读与多写 237 5.2 分布式查询优化与并行执行架构 241 5.2.1查询优化 241 5.2.2MPP 242 5.2.3计算下/外推 244 5.3 高可用性架构 245 5.3.1 高可用衡量指标 245 5.3.2 高可用性分类 248 5.3.3 高可用事务 249 5.3.4 高可用架构 252 5.3 分布式事务架构 253 5.4.1 事务管理器在客户端、中间件、服务端 253 5.3.2去中心化的并发事务框架 256 5.4 可扩展性架构 259 5.5. 可扩展性是一种能力 260 5.5. 事务处理的可扩展性 261 5.5 强一致性 264 5.6 解耦 264 5.7 小结 267 第6章 新技术与分布式数据库架构 269 6.1 新硬件 269 6.2 智能数据库 271 6.2. 基本概念与认知 272 6.2. 智能事务调度组件 274 6.3 云雾计算与数据库 276 6.3.1云原生 276 6.3.2云数据库 278 6.3.3Serverless数据库 280 6.4 HTAP 282 6.4.1HTAP概念与HTAC架构 282 6.4.2行列混存 284 6.5 NewSQL与下一代数据库 285 6.5.1数据库技术简史 285 6.5.2下一代数据库 292 6.6 小结 294 第三篇 典型案例 294 第7章 Spanner深度探索 295 7.1 Spanner的架构 296 7.2 Spanner的事务处理模型 298 7.2.1 读操作的分类和意义 299 7.2.2 分布式一致性实现原理 300 7.2.3 写操作一致性的实现原理 302 7.2.4 Truetime事务处理机制的缺点 305 7.2.5 深入Spanner悲观机制 306 7.2.6 Spanner与MVCC 308 7.2.7 读副本数据 309 7.2.8 全局读事务的一致性 309 7.2.9 只读事务 310 7.3 Spanner与CAP 311 7.4 瞬时失效情形下的读操作 311 7.5 本章小结 312 第8章 Percolator事务处理模型 313 8.1 Percolator的架构 313 8.2 Percolator的事务处理 314 8.2.1 事务处理整体过程 314 8.2.2 数据项上存储的事务信息 315 8.2.3 事务提交过程 315 8.2.4 事务读数据过程 319 8.3 Percolator的事务处理示例 320 8.4 本章小结 321 第9章 CockroachDB深度探索 323 9.1 CockroachDB的架构 323 9.2 CockroachDB事务处理模型 325 9.2.1 事务处理相关的数据结构 326 9.2.2 事务处理的阶段 328 9.2.3 事务处理的整体过程 329 9.2.4 事务的并发冲突 331 9.2.5 事务自动终止 334 9.2.6 隔离级别 335 9.3 分布式一致性实现原理 335 9.4 本章小结 336 第10章 其他数据库 337 10.1 内存型数据库Hekaton事务处理机制 337 10.1.1 Hekaton的技术架构 337 10.1.2 Hekaton的事务管理 342 10.1.3 Hekaton的并发控制 348 10.2 文档型分布式MongoDB 350 10.2.1 MongoDB的架构 350 10.2.2 MongoDB的事务处理技术 351 10.3 列存分布式HBase 352 10.3.1 HBase的架构 352 10.3.2 HBase的事务处理技术 353 10.4 Greenplum 354 10.5 图、键值事务处理技术 357 10.5.1 图模型事务处理技术 357 10.5.2 键值、文档模型事务处理技术 358 10.6 深入讨论数据库架构 359 10.6.1 数据库的通用架构 359 10.6.2 事务型数据库的架构 361 10.6.3 主流分布式数据库的技术比较 365 10.7 小结 366 ---------------------------8084385 - 深入理解分布式事务:原理与实战--------------------------- 推荐语 序 前言 第一部分 分布式事务基础 第1章 事务的基本概念2 1.1 事务的特性2 1.1.1 原子性3 1.1.2 一致性3 1.1.3 隔离性3 1.1.4 持久性3 1.2 事务的类型4 1.2.1 扁平事务4 1.2.2 带有保存点的扁平事务4 1.2.3 链式事务5 1.2.4 嵌套事务5 1.2.5 分布式事务5 1.3 本地事务5 1.3.1 基本概念6 1.3.2 本地事务的执行流程6 1.3.3 本地事务的优缺点7 1.4 MySQL事务基础7 1.4.1 并发事务带来的问题7 1.4.2 MySQL事务隔离级别9 1.4.3 MySQL中各种事务隔离级别的区别10 1.4.4 MySQL事务隔离级别最佳实践11 1.4.5 MySQL中锁的分类19 1.4.6 死锁的产生和预防23 1.4.7 MySQL中的死锁问题24 1.4.8 InnoDB中的MVCC原理25 1.5 本章小结28 第2章 MySQL事务的实现原理29 2.1 Redo Log29 2.1.1 Redo Log基本概念29 2.1.2 Redo Log基本原理30 2.1.3 Redo Log刷盘规则30 2.1.4 Redo Log刷盘最佳实践32 2.1.5 Redo Log写入机制34 2.1.6 Redo Log的LSN机制35 2.1.7 Redo Log相关参数36 2.2 Undo Log36 2.2.1 Undo Log基本概念36 2.2.2 Undo Log存储方式37 2.2.3 Undo Log基本原理37 2.2.4 Undo Log实现MVCC机制37 2.2.5 Undo Log相关参数40 2.3 BinLog41 2.3.1 BinLog基本概念41 2.3.2 BinLog记录模式41 2.3.3 BinLog文件结构42 2.3.4 BinLog写入机制43 2.3.5 BinLog组提交机制43 2.3.6 BinLog与Redo Log的区别45 2.3.7 BinLog相关参数45 2.4 MySQL事务流程46 2.4.1 MySQL事务执行流程46 2.4.2 MySQL事务恢复流程47 2.5 MySQL中的XA事务48 2.5.1 XA事务的基本原理48 2.5.2 MySQL XA事务语法49 2.5.3 JDBC操作MySQL XA事务52 2.6 本章小结54 第3章 Spring事务的实现原理55 3.1 Spring事务原理55 3.1.1 JDBC直接操作事务55 3.1.2 使用Spring管理事务56 3.1.3 Spring事务分类57 3.1.4 Spring事务超时57 3.1.5 Spring事务回滚规则57 3.2 Spring事务三大接口57 3.2.1 PlatformTransactionManager接口57 3.2.2 TransactionDefinition接口58 3.2.3 TransactionStatus接口60 3.3 Spring事务隔离级别61 3.4 Spring事务传播机制62 3.4.1 7种事务传播机制类型62 3.4.2 常用的事务传播类型65 3.5 Spring事务嵌套最佳实践65 3.5.1 环境准备66 3.5.2 最佳实践场景一71 3.5.3 最佳实践场景二72 3.5.4 最佳实践场景三73 3.5.5 最佳实践场景四74 3.5.6 最佳实践场景五75 3.5.7 最佳实践场景六76 3.5.8 最佳实践场景七77 3.6 Spring事务失效的场景79 3.6.1 数据库不支持事务79 3.6.2 事务方法未被Spring管理79 3.6.3 方法没有被public修饰79 3.6.4 同一类中的方法调用80 3.6.5 未配置事务管理器80 3.6.6 方法的事务传播类型不支持事务81 3.6.7 不正确地捕获异常81 3.6.8 标注错误的异常类型82 3.7 本章小结83 第4章 分布式事务的基本概念84 4.1 分布式系统架构84 4.1.1 产生的背景84 4.1.2 架构目标和架构原则85 4.2 分布式系统架构演进86 4.2.1 单体应用架构86 4.2.2 垂直应用架构87 4.2.3 分布式架构88 4.2.4 SOA架构89 4.2.5 微服务架构89 4.3 分布式事务场景90 4.3.1 跨JVM进程90 4.3.2 跨数据库实例91 4.3.3 多服务访问单数据库91 4.4 数据一致性92 4.4.1 数据的一致性问题92 4.4.2 数据一致性解决方案93 4.5 本章小结93 第5章 分布式事务的理论知识94 5.1 CAP理论94 5.1.1 一致性94 5.1.2 可用性95 5.1.3 分区容忍性95 5.1.4 CAP的组合96 5.2 Base理论97 5.3 本章小结98 第二部分 分布式事务解决方案 第6章 强一致性分布式事务解决方案100 6.1 强一致性事务概述100 6.1.1 典型方案100 6.1.2 适用场景101 6.1.3 优缺点101 6.2 DTP模型101 6.2.1 DTP模型的重要概念101 6.2.2 DTP模型的执行流程102 6.3 2PC模型102 6.3.1 2PC模型的执行流程103 6.3.2 事务执行成功的流程103 6.3.3 事务执行失败的流程104 6.3.4 2PC模型存在的问题105 6.4 3PC模型105 6.4.1 事务执行成功的流程105 6.4.2 事务执行失败的流程106 6.4.3 3PC模型中存在的问题108 6.5 本章小结108 第7章 最终一致性分布式事务解决方案109 7.1 最终一致性分布式事务概述109 7.1.1 典型方案109 7.1.2 适用场景110 7.1.3 优缺点110 7.2 服务模式110 7.2.1 可查询操作111 7.2.2 幂等操作111 7.2.3 TCC操作112 7.2.4 可补偿操作113 7.3 TCC解决方案113 7.3.1 适用场景114 7.3.2 需要实现的服务模式114 7.3.3 方案的执行流程114 7.3.4 方案的优缺点115 7.3.5 需要注意的问题116 7.4 可靠消息最终一致性解决方案117 7.4.1 适用场景117 7.4.2 需要实现的服务模式117 7.4.3 方案的执行流程118 7.4.4 方案的优缺点119 7.4.5 需要注意的问题120 7.5 最大努力通知型解决方案120 7.5.1 适用场景120 7.5.2 需要实现的服务模式121 7.5.3 方案的执行流程121 7.5.4 方案的优缺点122 7.5.5 需要注意的问题122 7.5.6 最大努力通知与可靠消息最终一致性的区别123 7.6 本章小结123 第三部分 分布式事务原理 第8章 XA强一致性分布式事务原理126 8.1 X/Open DTP模型与XA规范126 8.1.1 DTP模型126 8.1.2 XA规范127 8.1.3 JTA规范127 8.1.4 XA二阶段提交128 8.2 MySQL对XA规范的支持129 8.2.1 MySQL XA事务的语法129 8.2.2 MySQL XID详解129 8.2.3 MySQL XA事务的状态130 8.2.4 MySQL XA的问题131 8.3 XA规范的问题思考132 8.3.1 XA规范的缺陷132 8.3.2 XA流程的优化与异常思考133 8.3.3 解决XA数据不一致的问题134 8.3.4 解决事务管理器的单点故障问题135 8.4 主流的解决方案135 8.5 本章小结136 第9章 TCC分布式事务原理137 9.1 TCC核心思想137 9.2 TCC实现原理139 9.2.1 TCC核心组成139 9.2.2 TCC核心原理140 9.3 TCC核心流程142 9.3.1 业务场景介绍142 9.3.2 Try阶段流程143 9.3.3 Confirm阶段流程144 9.3.4 Cancel阶段流程145 9.4 TCC关键技术146 9.5 本章小结147 第10章 可靠消息最终一致性分布式事务原理148 10.1 基本原理148 10.2 本地消息表149 10.2.1 实现原理149 10.2.2 优缺点150 10.3 独立消息服务151 10.3.1 实现原理151 10.3.2 优缺点152 10.4 RocketMQ事务消息153 10.4.1 实现原理153 10.4.2 RocketMQ本地事务监听接口154 10.5 消息发送的一致性155 10.5.1 消息发送与确认机制155 10.5.2 消息发送的不一致性156 10.5.3 如何保证消息发送的一致性157 10.6 消息接收的一致性158 10.6.1 消息接收与确认机制158 10.6.2 消息接收的不一致性159 10.6.3 如何保证消息接收的一致性159 10.7 消息的可靠性161 10.7.1 消息发送的可靠性161 10.7.2 消息存储的可靠性161 10.7.3 消息消费的可靠性162 10.8 本章小结162 第11章 最大努力通知型分布式事务原理163 11.1 适用场景163 11.2 方案特点164 11.3 基本原理164 11.4 异常处理165 11.5 本章小结166 第四部分 分布式事务源码与实战 第12章 XA强一致性分布式事务解决方案源码解析168 12.1 分布式数据一致性场景的搭建168 12.1.1 构建环境168 12.1.2 准备环境169 12.1.3 修改配置169 12.1.4 启动171 12.1.5 验证171 12.2 ShardingSphere对XA分布式事务方案的整合172 12.2.1 ShardingTransactionManager接口172 12.2.2 XATransactionManager接口174 12.2.3 DataSourceSwapper类174 12.2.4 XAConnectionWrapper接口175 12.2.5 XA事务初始化175 12.2.6 XA资源注册176 12.3 ShardingSphere对Atomikos方案的实战与源码解析178 12.3.1 Atomikos-XA分布式事务初始化流程178 12.3.2 Atomikos-XA分布式事务Begin流程183 12.3.3 Atomikos-XA分布式事务资源注册原理185 12.3.4 Atomikos-XA分布式事务Commit流程186 12.3.5 Atomikos-XA分布式事务Rollback流程191 12.3.6 Atomikos-XA分布式事务恢复流程193 12.4 ShardingSphere对Narayana方案的实战与源码解析198 12.4.1 Narayana环境搭建198 12.4.2 Narayana-XA分布式事务初始化流程199 12.4.3 Narayana-XA分布式事务Begin流程206 12.4.4 Narayana-XA分布式事务资源注册208 12.4.5 Narayana-XA分布式事务Commit流程208 12.4.6 Narayana-XA分布式事务Rollback流程211 12.4.7 Narayana-XA分布式事务恢复流程212 12.5 本章小结216 第13章 Hmily-TCC分布式事务解决方案源码解析217 13.1 Hmily-TCC分布式场景的搭建217 13.1.1 准备环境218 13.1.2 下载源码并编译220 13.1.3 修改配置220 13.1.4 启动程序222 13.1.5 验证223 13.2 Hmily框架初始流程源码解析223 13.2.1 加载配置225 13.2.2 初始化事务日志存储229 13.2.3 初始化事务恢复调度器234 13.2.4 初始化事件分发器235 13.2.5 初始化Metrics监控信息236 13.3 Hmily-TCC分布式事务源码解析238 13.3.1 Try流程源码解析239 13.3.2 Confirm流程源码解析253 13.3.3 Cancel流程源码解析258 13.4 Hmily对RPC框架的支持261 13.4.1 对Dubbo框架的支持261 13.4.2 对Spring Cloud框架的支持263 13.4.3 对BRPC框架的支持265 13.4.4 对Motan框架的支持267 13.4.5 对gRPC框架的支持268 13.4.6 对Sofa-RPC框架的支持270 13.4.7 对Tars框架的支持272 13.5 Hmily-TCC事务恢复源码解析273 13.5.1 逻辑处理274 13.5.2 事务恢复275 13.6 本章小结276 第14章 XA强一致性分布式事务实战277 14.1 场景说明277 14.2 程序模块说明278 14.3 数据库表设计278 14.4 程序实现279 14.4.1 项目搭建279 14.4.2 持久层的实现287 14.4.3 业务逻辑层的实现288 14.4.4 接口层的实现289 14.4.5 项目启动类的实现290 14.5 测试程序290 14.6 本章小结292 第15章 TCC分布式事务实战293 15.1 场景说明293 15.2 程序模块说明294 15.3 数据库表设计295 15.4 实现项目公共模块297 15.4.1 项目搭建297 15.4.2 持久层的实现300 15.4.3 Dubbo接口的定义304 15.5 实现转出银行微服务305 15.5.1 项目搭建305 15.5.2 业务逻辑层的实现311 15.5.3 接口层的实现313 15.5.4 项目启动类的实现313 15.6 实现转入银行微服务314 15.6.1 业务逻辑层的实现314 15.6.2 项目启动类的实现315 15.7 测试程序316 15.8 本章小结318 第16章 可靠消息最终一致性分布式事务实战319 16.1 场景说明319 16.2 程序模块说明321 16.3 RocketMQ环境搭建与测试321 16.3.1 搭建Java环境321 16.3.2 搭建RocketMQ环境322 16.3.3 测试RocketMQ环境324 16.4 数据库表设计326 16.5 实现订单微服务328 16.5.1 项目搭建328 16.5.2 持久层的实现333 16.5.3 业务逻辑层的实现335 16.5.4 接口层的实现338 16.5.5 项目启动类的实现338 16.6 实现库存微服务339 16.6.1 项目搭建339 16.6.2 持久层的实现339 16.6.3 业务逻辑层的实现341 16.6.4 项目启动类的实现343 16.7 测试程序343 16.8 本章小结345 第17章 最大努力通知型分布式事务实战347 17.1 场景说明347 17.2 程序模块说明348 17.3 数据库表设计348 17.4 实现账户微服务350 17.4.1 项目搭建350 17.4.2 持久层的实现355 17.4.3 业务逻辑层的实现358 17.4.4 接口层的实现360 17.4.5 启动类的实现360 17.5 实现充值微服务361 17.5.1 项目搭建与持久层的实现361 17.5.2 业务逻辑层的实现361 17.5.3 接口层的实现362 17.5.4 启动类的实现363 17.6 测试程序363 17.7 本章小结365 |