作品简介

当今世界,软件的规模越来越大、功能越来越复杂,研发团队的规模也变得越来越大,运维人员和研发人员之间的工作交集越来越多。在这个大前提下,微服务模式在大型项目中开始风靡。

本书对使用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语言中的关键字
展开全部