主编推荐语
本书主要介绍基于Node.js构建企业级后端服务,适用于拥有Node.js实战经验且熟练掌握JavaScript的开发人员。读完本书,你会了解在生产环境中运行Node.js服务所需的许多技术。
内容简介
Node.js是一个基于ChromeV8引擎的JavaScript运行时环境,使用了高效、轻量级的事件驱动、非阻塞I/O模型,让JavaScript运行在服务端的开发平台。
从初创公司到世界500强,大多数公司都喜欢使用Node.js来构建高性能的后端服务。工程师对Node.js有很高的评价,因为它有容易理解的API和大家熟悉的语法。在全球大的包存储库的强力支持下,Node.js的生态必将更加繁荣。
在本书中,作者证明了Node.js在构建可观察、可扩展且有弹性的服务方面与传统的企业平台一样适用。中高级Node.js开发人员会发现,他们可以将应用程序代码和现代服务的各个层面结合起来。
通过学习本书,你可以:
-了解为什么要运行多个相同的Node.js服务副本。
-根据业务场景选择恰当的协议。
-调整应用程序容器以便在生产环境中运行。
-跟踪分布式系统中的错误,以确定哪个服务出错。
-通过将工作转移给反向代理来简化应用程序代码并提高性能。
-构建数据面板来监视服务运行状况和数据吞吐量。
-了解在企业环境中操作时需要使用多种工具的原因。
目录
- 版权信息
- O'Reilly Media, Inc.介绍
- 序言
- 前言
- 第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
- 关于作者
- 关于封面
出版方
机械工业出版社有限公司
机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。