• Go微服务实战
  • Go微服务实战
  • Go微服务实战
  • Go微服务实战
  • Go微服务实战
21年品牌 40万+商家 超1.5亿件商品

Go微服务实战

全新正版现货

64.2 7.2折 89 全新

库存2件

四川成都
认证卖家担保交易快速发货售后保障

作者刘金亮

出版社机械工业出版社

ISBN9787111674122

出版时间2021-03

装帧平装

开本16开

纸张胶版纸

定价89元

货号29205564

上书时间2023-10-17

天涯淘书阁

五年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
正版全新
商品描述

编辑推荐】:

1、“给小白的Go语言微服务实战书籍”


2、面向所有工程师,即便是没有Go语言基础的Java、PHP、Python工程师也可以直接上手使用,书中对Go语言进行了全面精炼的介绍。


3、书中代码注释详细、理论解释形象,在GitHub上提供了可运行的完整代码。


4、包含大量案例,对于重要的内容都给出了案例及相关分析,且每一部分都有一个案例从0开始分析、构建,指导读者从使用的角度去思考如何活学活用,


5、本书自始至终都围绕Go语言、微服务和实战这三大特色,全书从Go语言的基础引入,到Go语言的进阶、微服务的理论,再到*后的微服务实战,都给出了技术实现和实例代码,让有编程基础的读者可以深入浅出地学习和实践。



内容简介】:

本书针对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语言基础的人尽快了解、掌握微服务模式。



作者简介】:

刘金亮
研究生毕业于北京大学,现任用友集团架构师。曾经参与IBM、Accenture、Capgemini的软件系统咨询和开发项目,对复杂业务系统的架构和设计有丰富的经验,著有《Odoo快速入门与实战》。



目录】:

前言


*部分 Go语言基础


第1章 Go语言程序基础 2


1.1 Hello,World! 2


1.2 变量、指针及赋值 5


1.2.1 变量和常量 5


1.2.2 指针 8


1.2.3 赋值 9


1.3 包及作用域 10


1.4 选择和循环 12


1.5 垃圾回收 13


1.6 小结 15


第2章 基本数据类型 16


2.1 整型 17


2.1.1 整型取值范围 17


2.1.2 运算符 18


2.2 浮点型 19


2.3 复数和布尔类型 21


2.4 格式化说明符 22


2.5 小结 22


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


3.1 字符串和数组 23


3.1.1 字符串 24


3.1.2 数组 26


3.2 slice 27


3.2.1 结构定义 27


3.2.2 基本操作 28


3.2.3 append 30


3.2.4 copy 31


3.2.5 其他 32


3.3 map 33


3.3.1 定义 33


3.3.2 基本操作 33


3.4 struct 35


3.4.1 结构定义 36


3.4.2 基本操作 37


3.4.3 组合 38


3.5 JSON 40


3.6 小结 40


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


4.1 函数 41


4.1.1 函数的定义 41


4.1.2 闭包 42


4.1.3 作用域 43


4.1.4 多返回值及变长参数 45


4.1.5 defer关键字 46


4.2 方法 46


4.3 接口 50


4.4 反射 54


4.5 小结 57


第5章 并发编程 59


5.1 协程 59


5.1.1 核心概念 60


5.1.2 goroutine的基本使用 60


5.1.3 sync.WaitGroup 62


5.2 通道 64


5.2.1 channel写入数据 64


5.2.2 channel接收数据 65


5.2.3 以channel作为函数参数 66


5.2.4 缓存channel 67


5.2.5 select 70


5.2.6 超时检查 71


5.3 pipeline 74


5.4 小结 76


第6章 包和代码测试 77


6.1 包及Go工具 77


6.1.1 包导入 78


6.1.2 Go工具 79


6.2 代码优化 84


6.2.1 Go代码的优化 84


6.2.2 性能分析 84


6.3 测试 90


6.3.1 功能测试函数 91


6.3.2 基准测试函数 93


6.3.3 示例函数 96


6.4 小结 98


第7章 综合实战案例 99


7.1 案例需求 99


7.2 通信协议 100


7.3 服务器端 104


7.4 客户端 109


7.5 小结 116


第二部分 Go语言进阶


第8章 并发编程进阶 118


8.1 竞态与并发模式 118


8.1.1 数据竞态 118


8.1.2 并发原理 123


8.2 sync包 126


8.2.1 sync.Mutex互斥锁 126


8.2.2 sync.RWMutex多读写锁 128


8.2.3 sync.Once 130


8.2.4 sync.Cond 131


8.2.5 sync.Pool 134


8.2.6 sync.Map 136


8.3 context包 138


8.3.1 应用场景 138


8.3.2 定义 139


8.3.3 继承 141


8.3.4 示例 142


8.4 工作池 145


8.5 小结 151


第9章 Go Web编程 152


9.1 net/http包 152


9.1.1 Go Web工作的基本原理 152


9.1.2 http详解 156


9.2 Web框架 162


9.2.1 选择框架 162


9.2.2 httprouter框架 163


9.3 Web底层服务 165


9.3.1 Scoket简介 165


9.3.2 TCP Socket 166


9.3.3 UDP Socket 169


9.3.4 WebSocket 171


9.4 中间件 174


9.4.1 基本用法 174


9.4.2 进阶用法 176


9.5 数据库访问 179


9.5.1 database/sql接口 180


9.5.2 sqlx 182


9.6 小结 183


第10章 综合案例 184


10.1 案例需求 184


10.2 项目代码布局 186


10.3 配置和日志 187


10.3.1 配置 188


10.3.2 日志 190


10.4 模型 191


10.5 gin框架 193


10.6 小结 196


第三部分 微服务理论


第11章 微服务 198


11.1 微服务简介 198


11.1.1 什么是微服务 198


11.1.2 微服务的由来 198


11.1.3 微服务与微服务架构 199


11.2 系统架构的演进 199


11.2.1 单体架构 200


11.2.2 垂直架构 201


11.2.3 SOA 201


11.2.4 微服务架构 202


11.3 小结 205


第12章 微服务化策略 206


12.1 微服务架构风格 206


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


12.1.2 基于API的模块化 207


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


12.2.1 微服务的通信 207


12.2.2 事务管理的一致性 208


12.2.3 微服务数据查询 208


12.2.4 微服务部署 208


12.2.5 微服务生产环境监控 209


12.2.6 微服务的自动化测试 209


12.3 微服务的拆分 209


12.3.1 拆分的指导原则 210


12.3.2 依据业务能力拆分 210


12.3.3 依据领域驱动设计拆分 211


12.3.4 服务API的定义 213


12.4 小结 214


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


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


13.1.1 交互模式 215


13.1.2 API定义 217


13.2 protobuf格式 217


13.2.1 protobuf简介 217


13.2.2 protobuf的简单使用 217


13.3 gRPC包 219


13.3.1 net/rpc包 219


13.3.2 gRPC简介 221


13.3.3 Go语言实现gRPC调用 222


13.4 微服务发现:consul 224


13.5 小结 226


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


14.1 微服务下的事务管理 227


14.1.1 面临的难题 227


14.1.2 SRP的折衷 228


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


14.2.1 避免跨微服务的事务 229


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


14.2.3 *终一致性和补偿 231


14.3 Saga模式 234


14.3.1 Saga模式介绍 234


14.3.2 编排模式 235


14.3.3 编配模式 237


14.4 Saga模式的Go语言示例 238


14.4.1 Saga对象的Go语言实现 238


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


14.5 小结 243


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


15.1 聚合模式介绍 244


15.2 使用聚合模式 247


15.2.1 聚合拥有明确的边界 247


15.2.2 聚合的规则 248


15.2.3 聚合颗粒度 250


15.2.4 使用聚合设计业务逻辑 250


15.3 领域事件 251


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


15.4.1 聚合 253


15.4.2 实体和值对象 253


15.4.3 服务 255


15.5 小结 257


第16章 微服务中的测试 258


16.1 测试金字塔 258


16.2 单元测试 260


16.3 依赖注入和mock测试 263


16.4 行为驱动开发 266


16.5 使用Docker Compose测试 272


16.6 小结 275


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


17.1 Docker介绍 276


17.1.1 Docker引擎 276


17.1.2 守护进程 277


17.1.3 镜像及容器 277


17.1.4 仓库 278


17.1.5 数据卷 278


17.2 运行*个Docker容器 279


17.2.1 Docker安装 279


17.2.2 HelloWorld程序示例 279


17.2.3 运行复杂一点的容器 280


17.3 Docker数据持久化 282


17.3.1 数据卷 282


17.3.2 bind mount 284


17.4 Docker网络 285


17.4.1 桥接驱动及自定义bridge 285


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


17.5 小结 289


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


18.1 理论介绍 290


18.1.1 事件溯源 290


18.1.2 命令查询职责分离 291


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


18.2.1 需求 293


18.2.2 分析与设计 293


18.2.3 核心实现 296


18.3 小结 299


第四部分 微服务实战


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


19.1 加密和签名 302


19.1.1 对称密钥加密 302


19.1.2 公钥密码 303


19.1.3 X.509数字证书 303


19.1.4 TLS/SSL 304


19.2 外部安全 304


19.2.1 防火墙 304


19.2.2 页面应用的防火墙 305


19.2.3 API网关 305


19.2.4 DDoS保护 306


19.3 应用安全 307


19.3.1 攻击者如何绕过防火墙 308


19.3.2 输入校验 308


19.3.3 TLS 310


19.3.4 在rest中进行数据保护 313


19.3.5 JWT 314


19.3.6 大消息的非对称加密 315


19.4 运维安全 316


19.4.1 修补容器 316


19.4.2 软件更新 317


19.4.3 修补应用程序代码 317


19.4.4 日志 317


19.5 小结 317


第20章 日志和监控 318


20.1 日志*实践 319


20.2 指标 319


20.2.1 指标数据类型 320


20.2.2 命名约定 320


20.2.3 存储和查询 322


20.2.4 Grafana 323


20.3 日志记录 326


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


20.3.2 ElasticSearch、Logstash和Kibana 327


20.3.3 Kibana 328


20.4 异常 330


20.5 小结 332


第21章 持续交付 333


21.1 持续交付简介 333


21.1.1 手动部署 334


21.1.2 持续交付的好处 334


21.1.3 持续交付面面观 335


21.1.4 持续交付的过程 337


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


21.3 Terraform 339


21.3.1 提供者 340


21.3.2 Terraform配置入口点 341


21.3.3 VPC模块 342


21.3.4 输出变量 346


21.3.5 创建基础架构 348


21.4 应用范例 348


21.4.1 持续部署的工作流程 349


21.4.2 构建 352


21.4.3 测试 353


21.4.4 基准测试 354


21.4.5 静态代码测试 354


21.4.6 集成测试 355


21.4.7 部署 356


21.4.8 冒烟测试 357


21.4.9 监控和预警 357


21.5 小结 359


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


22.1 创建服务 361


22.1.1 测试 361


22.1.2 Go语言中的构造函数 362


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


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


22.2.1 Go kit中的端点 365


22.2.2 为服务方法设定终点 366


22.2.3 不同级别的错误 366


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


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


22.4 Go kit中的gRPC服务器 368


22.5 创建服务器命令 371


22.5.1 使用Go kit端点 373


22.5.2 运行HTTP服务器 373


22.5.3 运行gRPC服务器 373


22.5.4 防止main函数突然终止 374


22.5.5 通过HTTP使用服务 374


22.6 构建一个gRPC客户端 375


22.6.1 使用服务的命令行工具 376


22.6.2 在CLI中解析参数 377


22.7 服务中间件的速率限制 378


22.7.1 Go kit中的中间件 378


22.7.2 速率限制 380


22.8 小结 380


附录 Go语言中的关键字 381


—  没有更多了  —

以下为对购买帮助不大的评价

正版全新
此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP