作者: 刘金亮
出版社: 机械工业出版社
出版年: 2021-01
ISBN: 9787111674122
~~滚到底部有网盘下载链接~~
内容简介
当今世界,软件的规模越来越大、功能越来越复杂,研发团队的规模也变得越来越大,运维人员和研发人员之间的工作交集越来越多。在这个大前提下,微服务模式在大型项目中开始风靡。
本书对使用Go语言进行微服务开发做了全面细致的介绍,包括微服务的基础知识、微服务的拆分、微服务进程间通信(IPC)、微服务的分布式事务管理、领域驱动设计(DDD)、微服务中的测试、基于ES-CQRS的微服务实践、微服务生产环境和持续交付等。
本书比较全面地对微服务进行了介绍,而且对于每个知识点都给出了技术实现和实例代码,比如微服务进程间通信部分重点介绍了gRPC,ES-CQRS部分则给出了Go语言的具体实现。在介绍完知识点之后,本书给出了一些综合性的案例,比如第10章、第22章等,并通过GitHub提供了完整的可运行的代码,可帮助有基本Go语言语法知识的读者尽快了解、掌握微服务模式。
刘金亮著。
本书对使用Go语言进行微服务开发做了全面细致的介绍,包括微服务的基础知识、微服务的拆分、微服务进程间通信(IPC)、微服务的分布式事务管理、领域驱动设计(DDD)、微服务中的测试、基于ES-CQRS的微服务实践、微服务生产环境和持续交付等。
本书比较全面地对微服务进行了介绍,而且对于每个知识点都给出了技术实现和实例代码,比如微服务进程间通信部分重点介绍了gRPC,ES-CQRS部分则给出了Go语言的具体实现。在介绍完知识点之后,本书给出了一些综合性的案例,比如第10章、第22章等,并通过GitHub提供了完整的可运行的代码,可帮助有基本Go语言语法知识的读者尽快了解、掌握微服务模式。
刘金亮著。
目录
前言
第一部分 Go语言基础
第1章 Go语言程序基础
1.1 Hello,World!
1.2 变量、指针及赋值
1.3 包及作用域
1.4 选择和循环
1.5 垃圾回收
1.6 小结
第2章 基本数据类型
2.1 整型
2.2 浮点型
2.3 复数和布尔类型
2.4 格式化说明符
2.5 小结
第3章 字符串与复合数据类型
3.1 字符串和数组
3.2 slice
3.3 map
3.4 struct
3.5 JSON
3.6 小结
第4章 函数、方法、接口和反射
4.1 函数
4.2 方法
4.3 接口
4.4 反射
4.5 小结
第5章 并发编程
5.1 协程
5.2 通道
5.3 pipeline
5.4 小结
第6章 包和代码测试
6.1 包及Go工具
6.2 代码优化
6.3 测试
6.4 小结
第7章 综合实战案例
7.1 案例需求
7.2 通信协议
7.3 服务器端
7.4 客户端
7.5 小结
第二部分 Go语言进阶
第8章 并发编程进阶
8.1 竞态与并发模式
8.2 sync包
8.3 context包
8.4 工作池
8.5 小结
第9章 Go Web编程
9.1 net/http包
9.2 Web框架
9.3 Web底层服务
9.4 中间件
9.5 数据库访问
9.6 小结
第10章 综合案例
10.1 案例需求
10.2 项目代码布局
10.3 配置和日志
10.4 模型
10.5 gin框架
10.6 小结
第三部分 微服务理论
第11章 微服务
11.1 微服务简介
11.2 系统架构的演进
11.3 小结
第12章 微服务化策略
12.1 微服务架构风格
12.2 微服务化进程中的重点问题
12.3 微服务的拆分
12.4 小结
第13章 微服务中的进程间通信
13.1 微服务中的进程间通信概述
13.2 protobuf格式
13.3 gRPC包
13.4 微服务发现:consul
13.5 小结
第14章 微服务中的分布式事务管理
14.1 微服务下的事务管理
14.2 微服务中处理事务的几种方式
14.3 Saga模式
14.4 Saga模式的Go语言示例
14.5 小结
第15章 领域驱动设计的Go语言实现
15.1 聚合模式介绍
15.2 使用聚合模式
15.3 领域事件
15.4 Go语言领域模型的模拟实现
15.5 小结
第16章 微服务中的测试
16.1 测试金字塔
16.2 单元测试
16.3 依赖注入和mock测试
16.4 行为驱动开发
16.5 使用Docker Compose测试
16.6 小结
第17章 微服务运行环境:Docker
17.1 Docker介绍
17.2 运行第一个Docker容器
17.3 Docker数据持久化
17.4 Docker网络
17.5 小结
第18章 Go语言基于ES-CQRS的微服务实践
18.1 理论介绍
18.2 ES-CQRS在Go语言中的实现示例
18.3 小结
第四部分 微服务实战
第19章 生产环境的微服务安全
19.1 加密和签名
19.2 外部安全
19.3 应用安全
19.4 运维安全
19.5 小结
第20章 日志和监控
20.1 日志最佳实践
20.2 指标
20.3 日志记录
20.4 异常
20.5 小结
第21章 持续交付
21.1 持续交付简介
21.2 容器编排的选项和基础架构
21.3 Terraform
21.4 应用范例
21.5 小结
第22章 使用Go kit框架构建微服务
22.1 创建服务
22.2 使用请求和响应对方法调用进行建模
22.3 使用Go kit实现一个HTTP服务器
22.4 Go kit中的gRPC服务器
22.5 创建服务器命令
22.6 构建一个gRPC客户端
22.7 服务中间件的速率限制
22.8 小结
附录 Go语言中的关键字
第一部分 Go语言基础
第1章 Go语言程序基础
1.1 Hello,World!
1.2 变量、指针及赋值
1.3 包及作用域
1.4 选择和循环
1.5 垃圾回收
1.6 小结
第2章 基本数据类型
2.1 整型
2.2 浮点型
2.3 复数和布尔类型
2.4 格式化说明符
2.5 小结
第3章 字符串与复合数据类型
3.1 字符串和数组
3.2 slice
3.3 map
3.4 struct
3.5 JSON
3.6 小结
第4章 函数、方法、接口和反射
4.1 函数
4.2 方法
4.3 接口
4.4 反射
4.5 小结
第5章 并发编程
5.1 协程
5.2 通道
5.3 pipeline
5.4 小结
第6章 包和代码测试
6.1 包及Go工具
6.2 代码优化
6.3 测试
6.4 小结
第7章 综合实战案例
7.1 案例需求
7.2 通信协议
7.3 服务器端
7.4 客户端
7.5 小结
第二部分 Go语言进阶
第8章 并发编程进阶
8.1 竞态与并发模式
8.2 sync包
8.3 context包
8.4 工作池
8.5 小结
第9章 Go Web编程
9.1 net/http包
9.2 Web框架
9.3 Web底层服务
9.4 中间件
9.5 数据库访问
9.6 小结
第10章 综合案例
10.1 案例需求
10.2 项目代码布局
10.3 配置和日志
10.4 模型
10.5 gin框架
10.6 小结
第三部分 微服务理论
第11章 微服务
11.1 微服务简介
11.2 系统架构的演进
11.3 小结
第12章 微服务化策略
12.1 微服务架构风格
12.2 微服务化进程中的重点问题
12.3 微服务的拆分
12.4 小结
第13章 微服务中的进程间通信
13.1 微服务中的进程间通信概述
13.2 protobuf格式
13.3 gRPC包
13.4 微服务发现:consul
13.5 小结
第14章 微服务中的分布式事务管理
14.1 微服务下的事务管理
14.2 微服务中处理事务的几种方式
14.3 Saga模式
14.4 Saga模式的Go语言示例
14.5 小结
第15章 领域驱动设计的Go语言实现
15.1 聚合模式介绍
15.2 使用聚合模式
15.3 领域事件
15.4 Go语言领域模型的模拟实现
15.5 小结
第16章 微服务中的测试
16.1 测试金字塔
16.2 单元测试
16.3 依赖注入和mock测试
16.4 行为驱动开发
16.5 使用Docker Compose测试
16.6 小结
第17章 微服务运行环境:Docker
17.1 Docker介绍
17.2 运行第一个Docker容器
17.3 Docker数据持久化
17.4 Docker网络
17.5 小结
第18章 Go语言基于ES-CQRS的微服务实践
18.1 理论介绍
18.2 ES-CQRS在Go语言中的实现示例
18.3 小结
第四部分 微服务实战
第19章 生产环境的微服务安全
19.1 加密和签名
19.2 外部安全
19.3 应用安全
19.4 运维安全
19.5 小结
第20章 日志和监控
20.1 日志最佳实践
20.2 指标
20.3 日志记录
20.4 异常
20.5 小结
第21章 持续交付
21.1 持续交付简介
21.2 容器编排的选项和基础架构
21.3 Terraform
21.4 应用范例
21.5 小结
第22章 使用Go kit框架构建微服务
22.1 创建服务
22.2 使用请求和响应对方法调用进行建模
22.3 使用Go kit实现一个HTTP服务器
22.4 Go kit中的gRPC服务器
22.5 创建服务器命令
22.6 构建一个gRPC客户端
22.7 服务中间件的速率限制
22.8 小结
附录 Go语言中的关键字