新書推薦:
《
透过器物看历史(全6册)
》
售價:HK$
503.7
《
我在台北故宫博物院读名画
》
售價:HK$
112.7
《
尼罗河往事:古埃及文明4000年
》
售價:HK$
78.2
《
一个人·谁也不是·十万人(诺贝尔文学奖得主反思自我的巅峰之作)
》
售價:HK$
54.9
《
重写晚明史(全5册 精装)
》
售價:HK$
781.8
《
汉末晋初之际政治研究
》
售價:HK$
135.7
《
强者破局:资治通鉴成事之道
》
售價:HK$
82.8
《
鸣沙丛书·鼎革:南北议和与清帝退位
》
售價:HK$
121.0
|
編輯推薦: |
《Go语言微服务开发实践》的特色如下:
1. 全面涵盖微服务生态系统:本书以微服务的基础知识为起点,逐步深入地介绍了构建微服务所必需的各种关键概念和技术,包括服务注册与发现、分布式配置中心、日志记录与监控、容器化与部署、消息传递与异步通信、RPC(远程过程调用)、RESTful API设计等。通过学习本书,读者可以获得一个全面的微服务知识体系。
2. 深入讲解Go语言应用:作为一本以Go语言为主要开发语言的书籍,本书对Go语言的应用进行了深入解析,从Go语言的基础知识到具体的开发实践,都有详细的讲解和示例,让读者能够更好地理解和运用这门语言。
3. 结合实践经验分享解决方案:作者结合丰富的实际项目经验,分享了在微服务开发过程中遇到的问题和解决方案,让读者能够从实际应用的角度获得宝贵的经验,避免一些常见的陷阱。
4 涵盖DevOps与持续交付:本书不仅讲解微服务的设计和实现,还专门介绍了DevOps和持续交付的内容,帮助读者了解如何将微服务集成到现代软件交付流程中,以实现高效的部署和持续改进。
5. 强调解决实际问题:本书的重点是如何解决实际问题,每个章节都围绕实际应用场景展开
|
內容簡介: |
《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
|
內容試閱:
|
当前的软件开发领域正经历着持续的变革,微服务架构已成为现代应用开发的核心模式之一。随着企业需求的不断变化和复杂度的增加,微服务的灵活性和可扩展性为开发人员提供了一种创新的方式来构建和交付应用程序。
本书旨在为读者提供关于使用Go语言构建微服务的全面指南。微服务不仅仅是一种技术选择,更是一种思维方式,通过将应用程序拆分为小型、自治的服务单元,能够更好地满足不同的业务需求。无论你是正在探索微服务架构的基础知识,还是已经拥有一定经验并寻求更深入的实践指导,本书都将为你提供丰富的学习资源。
微服务的世界是充满挑战和机遇的,而本书将帮助你在这个领域获得更深入的洞察力。相信通过阅读本书,你将更加自信地构建和维护可扩展、高效的微服务,为你的团队和业务创造更大的价值。
本书特色
1. 全面涵盖微服务生态系统
本书以微服务的基础知识为起点,逐步深入地介绍了构建微服务所必需的各种关键概念和技术,包括服务注册与发现、分布式配置中心、日志记录与监控、容器化与部署、消息传递与异步通信、远程过程调用、构建RESTful API等。通过对本书的学习,读者可以获得一个全面的微服务知识体系。
2. 深入讲解Go语言应用
作为一本以Go语言为主要开发语言的书籍,本书对Go语言的应用进行了深入解析,从Go语言的基础知识到具体的开发实践,都有详细的讲解和示例,让读者能够更好地理解和运用这门语言。
3. 结合实践经验
作者结合丰富的实际项目经验,分享了在微服务开发过程中遇到的问题和解决方案,让读者能够从实际应用的角度获得宝贵的经验,避免一些常见的陷阱。
4. 涵盖DevOps与持续交付
本书不仅讲解微服务的设计和实现,还专门介绍了DevOps和持续交付的内容,帮助读者了解如何将微服务集成到现代软件交付流程中,以实现高效的部署和持续改进。
5. 适合不同经验层次的读者
无论是微服务开发的初学者还是具有一定经验的开发者,本书都能提供有价值的信息和指导。初学者可以通过逐步引导从零开始构建微服务应用,而有经验的开发者可以在实践案例中深入探索更高级的主题。综合而言,本书通过理论与实践的结合,为想要掌握Go语言微服务开发的读者提供了一份丰富、深入且实用的指南。
6. 强调解决实际问题
本书的重点是如何解决实际问题,每个章节都围绕实际应用场景展开讨论,帮助读者更好地理解如何将技术应用于解决实际问题的挑战。
本书内容
本书是一本专注于微服务架构下使用Go语言构建应用的实用指南,由浅入深地介绍了微服务架构的核心概念,从基础知识到实际应用,从设计到部署,全面覆盖了构建稳健、可扩展微服务的关键技术和最佳实践。
本书的内容分为5个部分,具体如下。
第一部分为基础知识。介绍微服务架构的背景、优势以及与传统架构的区别。讲解云计算、云原生以及微服务设计原则,探索不同微服务开发语言,特别强调了Go语言在微服务中的应用。
第二部分为构建微服务。探讨微服务中的服务发现与注册、分布式配置中心、日志记录和监控。通过实例,引导读者学习如何集成不同工具和库,使微服务能够高效地运行和协作。
第三部分为微服务开发实践。详细介绍了微服务中的远程过程调用、构建RESTful API、统一认证与授权,以及数据库访问与ORM。通过案例,将深入了解如何将这些概念应用于实际项目中。
第四部分为微服务治理与扩展。探讨了事件驱动架构、容错处理与负载均衡、服务网关与API管理,以及DevOps与持续交付。引导读者学习如何在微服务中应对不同的挑战,并在持续交付流程中实现高效部署。
第五部分为综合实战。以一个高并发在线聊天室系统为例,将之前所学的理论和技术应用于实际项目开发。帮助读者深入了解如何结合不同概念和技术构建完整的微服务应用。
此外,本书还为读者提供了丰富的线上学习资源,不仅包括案例源代码、PPT课件,还精心录制了视频讲解,读者可以扫描书中提供的二维码观看视频讲解,也可以通过扫描下方二维码获取案例源代码和PPT课件。
本书的读者对象
初学开发者:想要了解微服务架构以及如何使用Go语言构建微服务的初学开发者。本书提供了从基础知识到实际应用的逐步指导,让初学者能够快速入门微服务开发。
有经验的开发者:有一定的软件开发经验,但希望探索微服务架构并学习如何在实际项目中应用的开发者。本书深入介绍了微服务的各个方面,包括设计原则、工具使用和最佳实践,有助于有经验的开发者扩展技能。
Go语言爱好者:对Go语言有兴趣,希望将其应用于微服务开发的开发者。本书涵盖了大量关于Go语言的内容,从基础到高级的开发实践,对Go语言爱好者而言是一本宝贵的资源。
系统架构师:负责设计和规划微服务架构的系统架构师。本书不仅涵盖了微服务的核心概念,还深入探讨了微服务治理、容错处理、安全性等方面,有助于架构师作出明智的决策。
技术经理:需要了解微服务架构以及如何在团队中推动微服务开发的技术经理。通过本书,技术经理可以了解微服务的优势、挑战以及在开发过程中需要考虑的因素。
无论是初学者还是专业人士,无论对微服务和Go语言的了解程度如何,本书都将提供有价值的内容。无论是想要掌握微服务开发的核心技能,还是寻求进一步提升,本书都将成为读者在现代应用开发领域取得更大成功的指南。
本书在编写过程中,得到了清华大学出版社编辑的大力支持,正是各位专业人士的求实、耐心和效率,才使本书能够顺利出版。另外,也十分感谢我的家人给予的巨大支持。由于编者水平有限,书中难免存在疏漏与不妥之处,恳请读者提出宝贵的意见或建议,以便修订并使之更臻完善。
编 者
|
|