Node.js实战:分布式系统中的后端服务开发
郭笑鹏 译
出版时间:2021年12月
页数:316
从初创公司到世界500强,大多数公司都喜欢使用Node.js来构建高性能的后端服务。工程师对Node.js有很高的评价,因为它有容易理解的API和大家熟悉的语法。在全球最大的包存储库的强力支持下,Node.js的生态必将更加繁荣。
在本书中,作者证明了Node.js在构建可观察、可扩展且有弹性的服务方面与传统的企业平台一样适用。中高级Node.js开发人员会发现,他们可以将应用程序代码和现代服务栈的各个层面结合起来。
通过学习本书,你可以:
● 了解为什么要运行多个相同的Node.js服务副本。
● 根据业务场景选择恰当的协议。
● 调整应用程序容器以便在生产环境中运行。
● 跟踪分布式系统中的错误,以确定哪个服务出错。
● 通过将工作转移给反向代理来简化应用程序代码并提高性能。
● 构建数据面板来监视服务运行状况和数据吞吐量。
● 了解在企业环境中操作时需要使用多种工具的原因。
- 前言
- 第1章 为什么要用分布式
- 1.1 JavaScript的单线程特性
- 1.2 Node.js速览
- 1.3 Node.js的事件循环
- 1.4 示例应用程序
- 第2章 协议
- 2.1 使用HTTP请求和响应
- 2.2 使用GraphQL构建API外观
- 2.3 使用gRPC进行RPC通信
- 第3章 扩展
- 3.1 集群模块
- 3.2 使用HAProxy实现反向代理
- 3.3 SLA和负载测试
- 第4章 可观测性
- 4.1 运行环境
- 4.2 ELK与日志
- 4.3 Graphite、StatsD和Grafana度量指标
- 4.4 使用Zipkin进行分布式请求跟踪
- 4.5 运行状况检查
- 4.6 使用Cabot进行报警
- 第5章 容器
- 5.1 Docker简介
- 5.2 容器化Node.js服务
- 5.3 使用Docker Compose进行基本编排
- 5.4 内部Docker注册表
- 第6章 部署
- 6.1 使用Travis CI构建流水线
- 6.2 自动化测试
- 6.3 部署Heroku
- 6.4 模块、包和SemVer
- 6.5 内部npm注册表
- 第7章 容器编排
- 7.1 Kubernetes简介
- 7.2 启动
- 7.3 部署应用程序
- 7.4 服务发现
- 7.5 修改部署
- 第8章 弹性
- 8.1 Node.js进程的终止
- 8.2 构建无状态服务
- 8.3 使用Memcached构建外部缓存
- 8.4 数据库连接的弹性
- 8.5 使用Knex进行Schema迁移
- 8.6 幂等性和消息传递弹性
- 8.7 弹性测试
- 第9章 分布式基元
- 9.1 ID生成问题
- 9.2 Redis简介
- 9.3 Redis操作
- 9.4 寻求原子性
- 9.5 事务
- 9.6 Lua脚本
- 第10章 安全性
- 10.1 繁杂的代码库
- 10.2 认识攻击面
- 10.3 应用程序配置
- 10.4 升级依赖项
- 10.5 升级Node.js
- 附录A 安装HAProxy
- 附录B 安装Docker
- 附录C 安装Minikube和Kubectl
书名:Node.js实战:分布式系统中的后端服务开发
译者:郭笑鹏 译
国内出版社:机械工业出版社
出版时间:2021年12月
页数:316
书号:978-7-111-69449-6
原版书书名:Distributed Systems with Node.js
原版书出版商:O'Reilly Media
Thomas Hunter II
Thomas Hunter II已让Node.js在数十个企业中大放光彩,他现在在为一家致力于让Node.js更加安全的公司工作。他曾在数个关于Node.js和JavaScript的会议上发表讲话,并获得了JSNSD/JSNAD认证,同时他还是NodeSchool SF的组织者之一。