万本电子书0元读

万本电子书0元读

顶部广告

Go微服务实战电子书

1、“给小白的Go语言微服务实战书籍” 2、面向所有工程师,即便是没有Go语言基础的Java、PHP、Python工程师也可以直上手使用,书中对Go语言行了全面精炼的介绍。 3、书中代码注释详细、理论解释形象,在GitHub上提供了可运行的完整代码。 4、包含大量案例,对于重要的内容都给出了案例及相关分析,且每一部分都有一个案例从0始分析、构建,指导读者从使用的角度去思考如何活学活用,

售       价:¥

纸质售价:¥64.20购买纸书

0人正在读 | 0人评论 6.4

作       者:刘金亮

出  版  社:机械工业出版社

出版时间:2021-02-03

字       数:35.0万

所属分类: 科技 > 计算机/网络 > 程序设计

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(1条)
  • 读书简介
  • 目录
  • 累计评论(1条)
本书针对Go语言行微服务发做了全面细致的介绍,书中内容包括四大部分。 第①部分为Go语言基础(第1~7章),包括Go语言基础语法、Go语言基本特性和Go语言实战项目等内容。 第②部分为Go语言阶(第8~10章),主要介绍Go语言的并发编程阶、Go语言Web编程以及综合实战。 第③部分为微服务理论(第11~18章),包括微服务模式的理论基础、微服务的程间通信、微服务的分布式事务管理、领域驱动设计(DDD)、微服务测试、Docker及ES-CQRS策略。其中,微服务程间通信重介绍了gRPC,ES-CQRS策略部分给出了Go语言的实现。 第④部分为微服务实战(第19~22章),这一部分通过实战项目讲解了微服务的生产环境、日志和监控、持续部署等内容。 书中每一部分都提供了示例代码或实战项目,供读者边学习边动手实践,尽量做到让有Go语言基础的人尽快了解、掌握微服务模式。<br/>【推荐语】<br/>1、“给小白的Go语言微服务实战书籍” 2、面向所有工程师,即便是没有Go语言基础的Java、PHP、Python工程师也可以直上手使用,书中对Go语言行了全面精炼的介绍。 3、书中代码注释详细、理论解释形象,在GitHub上提供了可运行的完整代码。 4、包含大量案例,对于重要的内容都给出了案例及相关分析,且每一部分都有一个案例从0始分析、构建,指导读者从使用的角度去思考如何活学活用, 5、本书自始至终都围绕Go语言、微服务和实战这三大特色,全书从Go语言的基础引,到Go语言的阶、微服务的理论,再到*后的微服务实战,都给出了技术实现和实例代码,让有编程基础的读者可以深浅出地学习和实践。<br/>【作者】<br/>刘金亮 研究生毕业于北京大学,现任用友集团架构师。曾经参与IBM、Accenture、Capgemini的软件系统咨询和发项目,对复杂业务系统的架构和设计有丰富的经验,著有《Odoo快速门与实战》。<br/>
目录展开

前言

第一部分 Go语言基础

第1章 Go语言程序基础

1.1 Hello,World!

1.2 变量、指针及赋值

1.2.1 变量和常量

1.2.2 指针

1.2.3 赋值

1.3 包及作用域

1.4 选择和循环

1.5 垃圾回收

1.6 小结

第2章 基本数据类型

2.1 整型

2.1.1 整型取值范围

2.1.2 运算符

2.2 浮点型

2.3 复数和布尔类型

2.4 格式化说明符

2.5 小结

第3章 字符串与复合数据类型

3.1 字符串和数组

3.1.1 字符串

3.1.2 数组

3.2 slice

3.2.1 结构定义

3.2.2 基本操作

3.2.3 append

3.2.4 copy

3.2.5 其他

3.3 map

3.3.1 定义

3.3.2 基本操作

3.4 struct

3.4.1 结构定义

3.4.2 基本操作

3.4.3 组合

3.5 JSON

3.6 小结

第4章 函数、方法、接口和反射

4.1 函数

4.1.1 函数的定义

4.1.2 闭包

4.1.3 作用域

4.1.4 多返回值及变长参数

4.1.5 defer关键字

4.2 方法

4.3 接口

4.4 反射

4.5 小结

第5章 并发编程

5.1 协程

5.1.1 核心概念

5.1.2 goroutine的基本使用

5.1.3 sync.WaitGroup

5.2 通道

5.2.1 channel写入数据

5.2.2 channel接收数据

5.2.3 以channel作为函数参数

5.2.4 缓存channel

5.2.5 select

5.2.6 超时检查

5.3 pipeline

5.4 小结

第6章 包和代码测试

6.1 包及Go工具

6.1.1 包导入

6.1.2 Go工具

6.2 代码优化

6.2.1 Go代码的优化

6.2.2 性能分析

6.3 测试

6.3.1 功能测试函数

6.3.2 基准测试函数

6.3.3 示例函数

6.4 小结

第7章 综合实战案例

7.1 案例需求

7.2 通信协议

7.3 服务器端

7.4 客户端

7.5 小结

第二部分 Go语言进阶

第8章 并发编程进阶

8.1 竞态与并发模式

8.1.1 数据竞态

8.1.2 并发原理

8.2 sync包

8.2.1 sync.Mutex互斥锁

8.2.2 sync.RWMutex多读写锁

8.2.3 sync.Once

8.2.4 sync.Cond

8.2.5 sync.Pool

8.2.6 sync.Map

8.3 context包

8.3.1 应用场景

8.3.2 定义

8.3.3 继承

8.3.4 示例

8.4 工作池

8.5 小结

第9章 Go Web编程

9.1 net/http包

9.1.1 Go Web工作的基本原理

9.1.2 http详解

9.2 Web框架

9.2.1 选择框架

9.2.2 httprouter框架

9.3 Web底层服务

9.3.1 Scoket简介

9.3.2 TCP Socket

9.3.3 UDP Socket

9.3.4 WebSocket

9.4 中间件

9.4.1 基本用法

9.4.2 进阶用法

9.5 数据库访问

9.5.1 database/sql接口

9.5.2 sqlx

9.6 小结

第10章 综合案例

10.1 案例需求

10.2 项目代码布局

10.3 配置和日志

10.3.1 配置

10.3.2 日志

10.4 模型

10.5 gin框架

10.6 小结

第三部分 微服务理论

第11章 微服务

11.1 微服务简介

11.1.1 什么是微服务

11.1.2 微服务的由来

11.1.3 微服务与微服务架构

11.2 系统架构的演进

11.2.1 单体架构

11.2.2 垂直架构

11.2.3 SOA

11.2.4 微服务架构

11.3 小结

第12章 微服务化策略

12.1 微服务架构风格

12.1.1 每个服务都拥有独立的数据库

12.1.2 基于API的模块化

12.2 微服务化进程中的重点问题

12.2.1 微服务的通信

12.2.2 事务管理的一致性

12.2.3 微服务数据查询

12.2.4 微服务部署

12.2.5 微服务生产环境监控

12.2.6 微服务的自动化测试

12.3 微服务的拆分

12.3.1 拆分的指导原则

12.3.2 依据业务能力拆分

12.3.3 依据领域驱动设计拆分

12.3.4 服务API的定义

12.4 小结

第13章 微服务中的进程间通信

13.1 微服务中的进程间通信概述

13.1.1 交互模式

13.1.2 API定义

13.2 protobuf格式

13.2.1 protobuf简介

13.2.2 protobuf的简单使用

13.3 gRPC包

13.3.1 net/rpc包

13.3.2 gRPC简介

13.3.3 Go语言实现gRPC调用

13.4 微服务发现:consul

13.5 小结

第14章 微服务中的分布式事务管理

14.1 微服务下的事务管理

14.1.1 面临的难题

14.1.2 SRP的折衷

14.2 微服务中处理事务的几种方式

14.2.1 避免跨微服务的事务

14.2.2 基于XA协议的两阶段提交协议

14.2.3 最终一致性和补偿

14.3 Saga模式

14.3.1 Saga模式介绍

14.3.2 编排模式

14.3.3 编配模式

14.4 Saga模式的Go语言示例

14.4.1 Saga对象的Go语言实现

14.4.2 中央协调器的Go语言实现

14.5 小结

第15章 领域驱动设计的Go语言实现

15.1 聚合模式介绍

15.2 使用聚合模式

15.2.1 聚合拥有明确的边界

15.2.2 聚合的规则

15.2.3 聚合颗粒度

15.2.4 使用聚合设计业务逻辑

15.3 领域事件

15.4 Go语言领域模型的模拟实现

15.4.1 聚合

15.4.2 实体和值对象

15.4.3 服务

15.5 小结

第16章 微服务中的测试

16.1 测试金字塔

16.2 单元测试

16.3 依赖注入和mock测试

16.4 行为驱动开发

16.5 使用Docker Compose测试

16.6 小结

第17章 微服务运行环境:Docker

17.1 Docker介绍

17.1.1 Docker引擎

17.1.2 守护进程

17.1.3 镜像及容器

17.1.4 仓库

17.1.5 数据卷

17.2 运行第一个Docker容器

17.2.1 Docker安装

17.2.2 HelloWorld程序示例

17.2.3 运行复杂一点的容器

17.3 Docker数据持久化

17.3.1 数据卷

17.3.2 bind mount

17.4 Docker网络

17.4.1 桥接驱动及自定义bridge

17.4.2 Host模式、Overlay模式及None模式

17.5 小结

第18章 Go语言基于ES-CQRS的微服务实践

18.1 理论介绍

18.1.1 事件溯源

18.1.2 命令查询职责分离

18.2 ES-CQRS在Go语言中的实现示例

18.2.1 需求

18.2.2 分析与设计

18.2.3 核心实现

18.3 小结

第四部分 微服务实战

第19章 生产环境的微服务安全

19.1 加密和签名

19.1.1 对称密钥加密

19.1.2 公钥密码

19.1.3 X.509数字证书

19.1.4 TLS/SSL

19.2 外部安全

19.2.1 防火墙

19.2.2 页面应用的防火墙

19.2.3 API网关

19.2.4 DDoS保护

19.3 应用安全

19.3.1 攻击者如何绕过防火墙

19.3.2 输入校验

19.3.3 TLS

19.3.4 在rest中进行数据保护

19.3.5 JWT

19.3.6 大消息的非对称加密

19.4 运维安全

19.4.1 修补容器

19.4.2 软件更新

19.4.3 修补应用程序代码

19.4.4 日志

19.5 小结

第20章 日志和监控

20.1 日志最佳实践

20.2 指标

20.2.1 指标数据类型

20.2.2 命名约定

20.2.3 存储和查询

20.2.4 Grafana

20.3 日志记录

20.3.1 具有关联ID的分布式跟踪

20.3.2 ElasticSearch、Logstash和Kibana

20.3.3 Kibana

20.4 异常

20.5 小结

第21章 持续交付

21.1 持续交付简介

21.1.1 手动部署

21.1.2 持续交付的好处

21.1.3 持续交付面面观

21.1.4 持续交付的过程

21.2 容器编排的选项和基础架构

21.3 Terraform

21.3.1 提供者

21.3.2 Terraform配置入口点

21.3.3 VPC模块

21.3.4 输出变量

21.3.5 创建基础架构

21.4 应用范例

21.4.1 持续部署的工作流程

21.4.2 构建

21.4.3 测试

21.4.4 基准测试

21.4.5 静态代码测试

21.4.6 集成测试

21.4.7 部署

21.4.8 冒烟测试

21.4.9 监控和预警

21.5 小结

第22章 使用Go kit框架构建微服务

22.1 创建服务

22.1.1 测试

22.1.2 Go语言中的构造函数

22.1.3 使用bcrypt进行Hash处理并验证密码

22.2 使用请求和响应对方法调用进行建模

22.2.1 Go kit中的端点

22.2.2 为服务方法设定终点

22.2.3 不同级别的错误

22.2.4 将端点包装到服务实现中

22.3 使用Go kit实现一个HTTP服务器

22.4 Go kit中的gRPC服务器

22.5 创建服务器命令

22.5.1 使用Go kit端点

22.5.2 运行HTTP服务器

22.5.3 运行gRPC服务器

22.5.4 防止main函数突然终止

22.5.5 通过HTTP使用服务

22.6 构建一个gRPC客户端

22.6.1 使用服务的命令行工具

22.6.2 在CLI中解析参数

22.7 服务中间件的速率限制

22.7.1 Go kit中的中间件

22.7.2 速率限制

22.8 小结

附录 Go语言中的关键字

累计评论(1条) 1个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部