书籍详情
Go语言微服务开发实践

作者:王德利
出版社:清华大学出版社
出版时间:2024-09-01
ISBN:9787302669067
定价:¥99.00
购买这本书可以去
内容简介
《Go语言微服务开发实践》循序渐进、由浅入深地讲解了Go语言微服务开发的核心知识,并通过具体实例的实现过程演练了开发Go语言微服务程序的方法和流程。全书共分15章,分别讲解了微服务架构概述,服务注册与发现,分布式配置中心,日志记录与监控,容器化与部署,消息传递与异步通信,远程过程调用,构建RESTful API,统一认证与授权,数据库访问与ORM,事件驱动架构,容错处理与负载均衡,服务网关与API管理,DevOps与持续交付及高并发在线聊天室系统。本书内容简洁、全面,且不失其技术深度,书中以简练的文字介绍了复杂的案例,方便读者学习使用。《Go语言微服务开发实践》适用于已经了解了Go语言基础语法,并想进一步学Go Web开发、Go语言微服务开发、Go语言项目架构的读者,还可以作为高等院校相关专业的师生用书和培训机构的培训教材。
作者简介
王德利,计算机硕士,精通C/java/c /python/机器学习/大数据开发等开发技术,曾就职于东软、阿里等一线开发企业,参与了天猫国际的服务器架构工作,负责搭建了东软北方数据中心。现在就职于浪潮信息,负责服务器事业部的研发和拓展工作。
目录
第1章 微服务架构概述 1
1.1 微服务基础 2
1.1.1 发展背景 2
1.1.2 微服务架构与传统架构的区别 3
1.1.3 微服务架构的优势 4
1.1.4 云计算 5
1.1.5 云原生 6
1.2 微服务的设计原则 7
1.3 常用微服务开发语言 8
1.3.1 Java微服务和Spring Cloud 8
1.3.2 Go语言 9
1.3.3 Python语言 10
第2章 服务注册与发现 13
2.1 服务注册与发现的基本概念 14
2.1.1 服务注册与发现的基本原理 14
2.1.2 常见的服务发现模式 15
2.2 服务注册与发现工具 16
2.2.1 基于DNS的服务发现工具 16
2.2.2 专用的服务注册与发现工具 17
2.3 实现微服务架构中的服务注册与发现 18
2.3.1 使用服务注册与发现库 18
2.3.2 与容器编排工具的集成 22
2.3.3 ZooKeeper客户端库 25
第3章 分布式配置中心 27
3.1 配置管理的问题和挑战 28
3.2 分布式配置中心的基本概念 29
3.2.1 配置中心的基本架构 29
3.2.2 配置的存储方式和获取方式 30
3.3 常见的分布式配置中心工具 31
3.3.1 ZooKeeper 31
3.3.2 Consul 32
3.3.3 Etcd 33
3.4 在微服务架构中使用分布式配置中心 34
3.4.1 配置中心的集成方式 34
3.4.2 动态刷新配置实战 36
3.4.3 配置热更新实战 39
第4章 日志记录与监控 41
4.1 日志记录的基本概念 42
4.1.1 日志级别和日志格式 42
4.1.2 日志记录框架和库 43
4.1.3 日志聚合和分析工具 44
4.2 监控的基本概念 44
4.2.1 健康检查和指标收集 45
4.2.2 实时监控和告警 46
4.2.3 分布式跟踪和性能监控 47
4.2.4 常用的监控工具 47
4.3 在微服务架构中实现日志记录和监控实践 48
4.3.1 集中式日志记录实战 48
4.3.2 分布式追踪实战 53
4.3.3 监控指标的收集和展示实战 62
第5章 容器化与部署 67
5.1 容器化的概念和优势 68
5.1.1 容器化的原理 68
5.1.2 容器化的优势 68
5.2 常用的容器化技术 69
5.2.1 Docker 69
5.2.2 Kubernetes 70
5.2.3 Apache Mesos 71
5.2.4 Amazon ECS 72
5.3 构建容器镜像 73
5.3.1 Dockerfile的使用和最佳实践 73
5.3.2 镜像仓库和版本管理 76
5.4 容器编排与部署 77
5.4.1 常用的容器编排与部署工具 78
5.4.2 使用YAML进行配置与部署 78
5.5 容器监控和调度 80
5.5.1 容器监控指标的收集和展示 81
5.5.2 水平扩展和自动调度 82
5.5.3 容器网络和服务发现 83
第6章 消息传递与异步通信 91
6.1 消息传递的基本概念 92
6.2 消息传递的编解码和协议 93
6.3 异步通信的基本概念 94
6.4 常用的消息传递中间件 95
6.4.1 Apache Kafka 95
6.4.2 RabbitMQ 96
6.4.3 Apache ActiveMQ 96
6.4.4 NATS 97
6.5 异步通信模式 98
6.5.1 异步通信模式的常见形式 98
6.5.2 发布/订阅模式 99
6.5.3 请求/响应模式 99
6.6 微服务消息传递和异步通信实战 100
6.6.1 系统配置 100
6.6.2 消息处理 102
6.6.3 入口文件 106
第7章 远程过程调用 113
7.1 远程过程调用的概念和原理 114
7.1.1 远程过程调用的基本工作流程 114
7.1.2 远程对象和远程方法调用 114
7.1.3 常见的RPC框架和协议 115
7.2 RPC的序列化和传输 116
7.2.1 序列化和反序列化的概念 116
7.2.2 常用的序列化协议 117
7.3 在微服务架构中使用RPC 117
7.3.1 Go语言原生RPC实战 118
7.3.2 gRPC高性能远程过程调用实战 120
7.3.3 使用Go-kit实现 RPC实战 126
第8章 构建RESTful API 131
8.1 RESTful API介绍 132
8.1.1 REST的基本概念 132
8.1.2 RESTful架构的优点和约束 133
8.2 设计RESTful API 134
8.2.1 资源的定义和命名 134
8.2.2 HTTP方法和状态码的使用 135
8.2.3 请求和响应的数据格式 136
8.3 数据验证和输入校验 138
8.4 RESTful API的版本控制 140
8.4.1 版本控制的需求和策略 140
8.4.2 URI和请求头的版本控制 141
8.4.3 URL重写和命名空间 142
8.5 RESTful API实战:云原生图书管理系统 143
8.5.1 系统配置 143
8.5.2 数据库迁移 145
8.5.3 实现RESTful API 147
8.5.4 验证处理 150
8.5.5 总结 152
第9章 统一认证与授权 155
9.1 认证与授权的基本概念 156
9.1.1 认证的定义和作用 156
9.1.2 授权的定义和作用 156
9.1.3 认证与授权的关系和流程 157
9.1.4 常见的身份认证协议与技术 157
9.2 统一认证的架构与实现 159
9.2.1 单点登录 159
9.2.2 统一认证的架构和组件 160
9.2.3 用户身份管理和存储 160
9.3 授权与权限管理 162
9.3.1 授权模型 162
9.3.2 授权策略 162
9.4 在微服务架构中使用统一认证与授权 163
9.4.1 微服务单点登录实战 163
9.4.2 微服务OAuth 2.0认证实战 173
第10章 数据库访问与ORM 179
10.1 数据访问层 180
10.1.1 数据访问层的职责和重要性 180
10.1.2 数据访问层的设计原则 181
10.2 ORM基础 182
10.2.1 关系映射 182
10.2.2 ORM的定义和作用 182
10.3 常见的Go语言ORM框架 183
10.3.1 GORM 183
10.3.2 XORM 187
10.3.3 SQLBoiler 191
10.3.4 Gorp 196
第11章 事件驱动架构 201
11.1 事件驱动架构的基本概念 202
11.1.1 事件驱动架构的定义和特点 202
11.1.2 事件与事件流 203
11.2 事件发布与订阅模式 204
11.2.1 发布者—订阅者模式 204
11.2.2 事件通道和消息代理 205
11.2.3 基于主题的订阅和过滤 205
11.3 事件溯源和CQRS模式 206
11.3.1 事件溯源的概念 206
11.3.2 事件存储和事件日志 207
11.3.3 命令查询职责分离 208
11.4 事件驱动的微服务架构 209
11.4.1 事件驱动与微服务的关系 209
11.4.2 事件驱动架构的组件和通信模式 210
11.5 Go语言微服务事件驱动架构实战 211
11.5.1 项目介绍 211
11.5.2 技术栈 213
11.5.3 具体实现 213
11.5.4 总结 222
第12章 容错处理与负载均衡 223
12.1 容错处理的基本概念 224
12.1.1 微服务的容错处理策略和技术 224
12.1.2 常用的容错处理工具 225
12.2 微服务的负载均衡 230
12.2.1 负载均衡的作用 231
12.2.2 负载均衡原理和算法 231
12.2.3 常用的负载均衡器和工具 232
12.3 服务注册与服务发现 238
12.3.1 服务注册的概念和流程 238
12.3.2 服务发现的原理和机制 239
12.3.3 常用的服务注册与发现工具 240
12.4 容器编排与弹性伸缩 254
12.4.1 容器编排的概念和作用 254
12.4.2 弹性伸缩的原理和策略 255
12.4.3 常用的容器编排工具和平台 256
第13章 服务网关与API管理 261
13.1 服务网关基础 262
13.1.1 服务网关的定义和角色 262
13.1.2 服务网关与微服务架构的关系 263
13.1.3 常用的服务网关框架和工具 263
13.2 API管理与开放平台 264
13.2.1 API管理与开放平台相关概念 264
13.2.2 API设计和文档管理 265
13.2.3 API授权与访问控制 267
13.3 服务发现与动态路由 268
13.3.1 服务发现的概念和实现 268
13.3.2 动态路由的实现和配置 269
13.3.3 服务注册与发现的工具和框架 270
13.4 安全与监控 271
13.4.1 服务网关的安全机制 271
13.4.2 API的安全性与防护措施 272
13.4.3 服务网关的监控与日志管理 273
13.5 性能优化与缓存 274
13.5.1 服务网关的性能瓶颈 274
13.5.2 缓存策略与机制 275
13.5.3 CDN与内容分发 276
13.6 服务网关与API管理实战 277
13.6.1 项目功能 277
13.6.2 核心代码 277
13.6.3 使用框架 290
第14章 DevOps与持续交付 295
14.1 DevOps概述 296
14.1.1 DevOps的原则 296
14.1.2 DevOps的核心价值和优势 296
14.2 DevOps工具与技术 297
14.2.1 持续集成与持续交付工具 297
14.2.2 配置管理与自动化工具 298
14.3 DevOps实践与流程 299
14.3.1 持续集成与持续交付流程 299
14.3.2 基础设施即代码和自动化测试 300
14.3.3 监控和日志管理 301
14.4 DevOps与云计算 302
14.4.1 云原生应用开发与部署 302
14.4.2 云平台的弹性和自动化特性 303
14.4.3 DevOps在多云环境中的挑战与解决方案 304
14.5 DevSecOps和持续安全 305
14.5.1 安全文化和安全自动化 306
14.5.2 安全测试和漏洞修复 307
14.5.3 安全监控和响应机制 308
14.6 持续交付与业务价值 309
14.6.1 快速交付和敏捷创新 309
14.6.2 用户反馈和持续改进 310
14.6.3 DevOps对组织和团队的影响 311
14.7 基于DevOps环境的Go语言微服务实战 312
14.7.1 项目设置和版本控制 312
14.7.2 自动化构建 313
14.7.3 持续集成 314
14.7.4 自动化测试 316
14.7.5 容器化 317
14.7.6 持续交付 318
14.7.7 环境管理 321
14.7.8 部署自动化 322
14.7.9 监控和日志 324
14.7.10 持续改进 325
第15章 高并发在线聊天室系统 327
15.1 背景介绍 328
15.2 系统分析 328
15.2.1 需求分析 329
15.2.2 系统设计 329
15.2.3 系统模块架构分析 331
15.3 系统配置文件 331
15.3.1 读取配置文件 331
15.3.2 实现系统配置文件 333
15.4 数据库设计 333
15.4.1 数据库表设计 333
15.4.2 数据库连接 334
15.4.3 model层 337
15.5 具体实现 342
15.5.1 URL路由 342
15.5.2 中间件层 345
15.5.3 Service业务层 349
15.5.4 Controller层 353
15.6 调试运行 359
1.1 微服务基础 2
1.1.1 发展背景 2
1.1.2 微服务架构与传统架构的区别 3
1.1.3 微服务架构的优势 4
1.1.4 云计算 5
1.1.5 云原生 6
1.2 微服务的设计原则 7
1.3 常用微服务开发语言 8
1.3.1 Java微服务和Spring Cloud 8
1.3.2 Go语言 9
1.3.3 Python语言 10
第2章 服务注册与发现 13
2.1 服务注册与发现的基本概念 14
2.1.1 服务注册与发现的基本原理 14
2.1.2 常见的服务发现模式 15
2.2 服务注册与发现工具 16
2.2.1 基于DNS的服务发现工具 16
2.2.2 专用的服务注册与发现工具 17
2.3 实现微服务架构中的服务注册与发现 18
2.3.1 使用服务注册与发现库 18
2.3.2 与容器编排工具的集成 22
2.3.3 ZooKeeper客户端库 25
第3章 分布式配置中心 27
3.1 配置管理的问题和挑战 28
3.2 分布式配置中心的基本概念 29
3.2.1 配置中心的基本架构 29
3.2.2 配置的存储方式和获取方式 30
3.3 常见的分布式配置中心工具 31
3.3.1 ZooKeeper 31
3.3.2 Consul 32
3.3.3 Etcd 33
3.4 在微服务架构中使用分布式配置中心 34
3.4.1 配置中心的集成方式 34
3.4.2 动态刷新配置实战 36
3.4.3 配置热更新实战 39
第4章 日志记录与监控 41
4.1 日志记录的基本概念 42
4.1.1 日志级别和日志格式 42
4.1.2 日志记录框架和库 43
4.1.3 日志聚合和分析工具 44
4.2 监控的基本概念 44
4.2.1 健康检查和指标收集 45
4.2.2 实时监控和告警 46
4.2.3 分布式跟踪和性能监控 47
4.2.4 常用的监控工具 47
4.3 在微服务架构中实现日志记录和监控实践 48
4.3.1 集中式日志记录实战 48
4.3.2 分布式追踪实战 53
4.3.3 监控指标的收集和展示实战 62
第5章 容器化与部署 67
5.1 容器化的概念和优势 68
5.1.1 容器化的原理 68
5.1.2 容器化的优势 68
5.2 常用的容器化技术 69
5.2.1 Docker 69
5.2.2 Kubernetes 70
5.2.3 Apache Mesos 71
5.2.4 Amazon ECS 72
5.3 构建容器镜像 73
5.3.1 Dockerfile的使用和最佳实践 73
5.3.2 镜像仓库和版本管理 76
5.4 容器编排与部署 77
5.4.1 常用的容器编排与部署工具 78
5.4.2 使用YAML进行配置与部署 78
5.5 容器监控和调度 80
5.5.1 容器监控指标的收集和展示 81
5.5.2 水平扩展和自动调度 82
5.5.3 容器网络和服务发现 83
第6章 消息传递与异步通信 91
6.1 消息传递的基本概念 92
6.2 消息传递的编解码和协议 93
6.3 异步通信的基本概念 94
6.4 常用的消息传递中间件 95
6.4.1 Apache Kafka 95
6.4.2 RabbitMQ 96
6.4.3 Apache ActiveMQ 96
6.4.4 NATS 97
6.5 异步通信模式 98
6.5.1 异步通信模式的常见形式 98
6.5.2 发布/订阅模式 99
6.5.3 请求/响应模式 99
6.6 微服务消息传递和异步通信实战 100
6.6.1 系统配置 100
6.6.2 消息处理 102
6.6.3 入口文件 106
第7章 远程过程调用 113
7.1 远程过程调用的概念和原理 114
7.1.1 远程过程调用的基本工作流程 114
7.1.2 远程对象和远程方法调用 114
7.1.3 常见的RPC框架和协议 115
7.2 RPC的序列化和传输 116
7.2.1 序列化和反序列化的概念 116
7.2.2 常用的序列化协议 117
7.3 在微服务架构中使用RPC 117
7.3.1 Go语言原生RPC实战 118
7.3.2 gRPC高性能远程过程调用实战 120
7.3.3 使用Go-kit实现 RPC实战 126
第8章 构建RESTful API 131
8.1 RESTful API介绍 132
8.1.1 REST的基本概念 132
8.1.2 RESTful架构的优点和约束 133
8.2 设计RESTful API 134
8.2.1 资源的定义和命名 134
8.2.2 HTTP方法和状态码的使用 135
8.2.3 请求和响应的数据格式 136
8.3 数据验证和输入校验 138
8.4 RESTful API的版本控制 140
8.4.1 版本控制的需求和策略 140
8.4.2 URI和请求头的版本控制 141
8.4.3 URL重写和命名空间 142
8.5 RESTful API实战:云原生图书管理系统 143
8.5.1 系统配置 143
8.5.2 数据库迁移 145
8.5.3 实现RESTful API 147
8.5.4 验证处理 150
8.5.5 总结 152
第9章 统一认证与授权 155
9.1 认证与授权的基本概念 156
9.1.1 认证的定义和作用 156
9.1.2 授权的定义和作用 156
9.1.3 认证与授权的关系和流程 157
9.1.4 常见的身份认证协议与技术 157
9.2 统一认证的架构与实现 159
9.2.1 单点登录 159
9.2.2 统一认证的架构和组件 160
9.2.3 用户身份管理和存储 160
9.3 授权与权限管理 162
9.3.1 授权模型 162
9.3.2 授权策略 162
9.4 在微服务架构中使用统一认证与授权 163
9.4.1 微服务单点登录实战 163
9.4.2 微服务OAuth 2.0认证实战 173
第10章 数据库访问与ORM 179
10.1 数据访问层 180
10.1.1 数据访问层的职责和重要性 180
10.1.2 数据访问层的设计原则 181
10.2 ORM基础 182
10.2.1 关系映射 182
10.2.2 ORM的定义和作用 182
10.3 常见的Go语言ORM框架 183
10.3.1 GORM 183
10.3.2 XORM 187
10.3.3 SQLBoiler 191
10.3.4 Gorp 196
第11章 事件驱动架构 201
11.1 事件驱动架构的基本概念 202
11.1.1 事件驱动架构的定义和特点 202
11.1.2 事件与事件流 203
11.2 事件发布与订阅模式 204
11.2.1 发布者—订阅者模式 204
11.2.2 事件通道和消息代理 205
11.2.3 基于主题的订阅和过滤 205
11.3 事件溯源和CQRS模式 206
11.3.1 事件溯源的概念 206
11.3.2 事件存储和事件日志 207
11.3.3 命令查询职责分离 208
11.4 事件驱动的微服务架构 209
11.4.1 事件驱动与微服务的关系 209
11.4.2 事件驱动架构的组件和通信模式 210
11.5 Go语言微服务事件驱动架构实战 211
11.5.1 项目介绍 211
11.5.2 技术栈 213
11.5.3 具体实现 213
11.5.4 总结 222
第12章 容错处理与负载均衡 223
12.1 容错处理的基本概念 224
12.1.1 微服务的容错处理策略和技术 224
12.1.2 常用的容错处理工具 225
12.2 微服务的负载均衡 230
12.2.1 负载均衡的作用 231
12.2.2 负载均衡原理和算法 231
12.2.3 常用的负载均衡器和工具 232
12.3 服务注册与服务发现 238
12.3.1 服务注册的概念和流程 238
12.3.2 服务发现的原理和机制 239
12.3.3 常用的服务注册与发现工具 240
12.4 容器编排与弹性伸缩 254
12.4.1 容器编排的概念和作用 254
12.4.2 弹性伸缩的原理和策略 255
12.4.3 常用的容器编排工具和平台 256
第13章 服务网关与API管理 261
13.1 服务网关基础 262
13.1.1 服务网关的定义和角色 262
13.1.2 服务网关与微服务架构的关系 263
13.1.3 常用的服务网关框架和工具 263
13.2 API管理与开放平台 264
13.2.1 API管理与开放平台相关概念 264
13.2.2 API设计和文档管理 265
13.2.3 API授权与访问控制 267
13.3 服务发现与动态路由 268
13.3.1 服务发现的概念和实现 268
13.3.2 动态路由的实现和配置 269
13.3.3 服务注册与发现的工具和框架 270
13.4 安全与监控 271
13.4.1 服务网关的安全机制 271
13.4.2 API的安全性与防护措施 272
13.4.3 服务网关的监控与日志管理 273
13.5 性能优化与缓存 274
13.5.1 服务网关的性能瓶颈 274
13.5.2 缓存策略与机制 275
13.5.3 CDN与内容分发 276
13.6 服务网关与API管理实战 277
13.6.1 项目功能 277
13.6.2 核心代码 277
13.6.3 使用框架 290
第14章 DevOps与持续交付 295
14.1 DevOps概述 296
14.1.1 DevOps的原则 296
14.1.2 DevOps的核心价值和优势 296
14.2 DevOps工具与技术 297
14.2.1 持续集成与持续交付工具 297
14.2.2 配置管理与自动化工具 298
14.3 DevOps实践与流程 299
14.3.1 持续集成与持续交付流程 299
14.3.2 基础设施即代码和自动化测试 300
14.3.3 监控和日志管理 301
14.4 DevOps与云计算 302
14.4.1 云原生应用开发与部署 302
14.4.2 云平台的弹性和自动化特性 303
14.4.3 DevOps在多云环境中的挑战与解决方案 304
14.5 DevSecOps和持续安全 305
14.5.1 安全文化和安全自动化 306
14.5.2 安全测试和漏洞修复 307
14.5.3 安全监控和响应机制 308
14.6 持续交付与业务价值 309
14.6.1 快速交付和敏捷创新 309
14.6.2 用户反馈和持续改进 310
14.6.3 DevOps对组织和团队的影响 311
14.7 基于DevOps环境的Go语言微服务实战 312
14.7.1 项目设置和版本控制 312
14.7.2 自动化构建 313
14.7.3 持续集成 314
14.7.4 自动化测试 316
14.7.5 容器化 317
14.7.6 持续交付 318
14.7.7 环境管理 321
14.7.8 部署自动化 322
14.7.9 监控和日志 324
14.7.10 持续改进 325
第15章 高并发在线聊天室系统 327
15.1 背景介绍 328
15.2 系统分析 328
15.2.1 需求分析 329
15.2.2 系统设计 329
15.2.3 系统模块架构分析 331
15.3 系统配置文件 331
15.3.1 读取配置文件 331
15.3.2 实现系统配置文件 333
15.4 数据库设计 333
15.4.1 数据库表设计 333
15.4.2 数据库连接 334
15.4.3 model层 337
15.5 具体实现 342
15.5.1 URL路由 342
15.5.2 中间件层 345
15.5.3 Service业务层 349
15.5.4 Controller层 353
15.6 调试运行 359
猜您喜欢



