Go语言微服务开发实践 版权信息
- ISBN:9787302669067
- 条形码:9787302669067 ; 978-7-302-66906-7
- 装帧:80g胶版纸
- 册数:暂无
- 重量:暂无
- 所属分类:>
Go语言微服务开发实践 本书特色
《Go语言微服务开发实践》的特色如下:1. 全面涵盖微服务生态系统:本书以微服务的基础知识为起点,逐步深入地介绍了构建微服务所必需的各种关键概念和技术,包括服务注册与发现、分布式配置中心、日志记录与监控、容器化与部署、消息传递与异步通信、RPC(远程过程调用)、RESTful API设计等。通过学习本书,读者可以获得一个全面的微服务知识体系。2. 深入讲解Go语言应用:作为一本以Go语言为主要开发语言的书籍,本书对Go语言的应用进行了深入解析,从Go语言的基础知识到具体的开发实践,都有详细的讲解和示例,让读者能够 好地理解和运用这门语言。3. 结合实践经验分享解决方案:作者结合丰富的实际项目经验,分享了在微服务开发过程中遇到的问题和解决方案,让读者能够从实际应用的角度获得宝贵的经验,避免一些常见的陷阱。4 涵盖DevOps与持续交付:本书不仅讲解微服务的设计和实现,还专门介绍了DevOps和持续交付的内容,帮助读者了解如何将微服务集成到现代软件交付流程中,以实现高效的部署和持续改进。5. 强调解决实际问题:本书的重点是如何解决实际问题,每个章节都围绕实际应用场景展开讨论,帮助读者 好地理解如何将技术应用于解决现实世界的挑战。6. 提供丰富的学习资源:本书还为读者提供了丰富的 学习资源,不仅有全书案例源代码、PPT课件,还精心录制了讲解视频,读者可以扫描书中提供的二维码获取。
Go语言微服务开发实践 内容简介
本书循序渐进、由浅入深地讲解了Go语言微服务开发的核心知识,并通过具体实例的实现过程演练了开发Go语言微服务程序的方法和流程。全书共分15章,分别讲解了微服务架构概述,服务注册与发现,分布式配置中心,日志记录与监控,容器化与部署,消息传递与异步通信,远程过程调用,构建RESTful API,统一认证与授权,数据库访问与ORM,事件驱动架构,容错处理与负载均衡,服务网关与API管理,DevOps 与持续交付及高并发在线聊天室系统。本书内容简洁、全面,且不失其技术深度,书中以简练的文字介绍了复杂的案例,方便读者学习使用。
本书适用于已经了解了Go语言基础语法,并想进一步学Go Web开发、Go语言微服务开发、Go语言项目架构的读者,还可以作为高等院校相关专业的师生用书和培训机构的培训教材。
Go语言微服务开发实践 目录
目录
第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 Cloud8
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 ZooKeeper31
3.3.2 Consul32
3.3.3 Etcd33
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 Docker69
5.2.2 Kubernetes70
5.2.3 Apache Mesos71
5.2.4 ECS72
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 Kafka95
6.4.2 RabbitMQ96
6.4.3 Apache ActiveMQ96
6.4.4 NATS97
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 在微服务架构中使用RPC117
7.3.1 Go语言原生RPC实战118
7.3.2 gRPC高性能远程过程调用实战120
7.3.3 使用Go-kit实现 RPC实战126
第8章 构建RESTful API131
8.1 RESTful API介绍132
8.1.1 REST的基本概念132
8.1.2 RESTful架构的优点和约束133
8.2 设计RESTful API134
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 API147
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
0章 数据库访问与ORM179
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 GORM183
10.3.2 XORM187
10.3.3 SQLBoiler191
10.3.4 Gorp196
1章 事件驱动架构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
2章 容错处理与负载均衡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
3章 服务网关与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
4章 DevOps与持续交付295
14.1 DevOps概述296
14.1.1 DevOps的原则296
14.1.2 DevOps的核心价值和优势296
14.2 DevOps工具与技术297
14.2.1 持续集成与持续交付工具97
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
5章 高并发在线聊天室系统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
展开全部
Go语言微服务开发实践 作者简介
王德利,计算机硕士,精通C/java/c++/python/机器学习/大数据开发等开发技术,曾就职于东软、阿里等一线开发企业,参与了天猫 的服务器架构工作,负责搭建了东软北方数据中心。现在就职于浪潮信息,负责服务器事业部的研发和拓展工作。