本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正
从初创公司到世界500强,大多数公司都喜欢使用Node.js来构建高性能的后端服务。工程师对Node.js有很高的评价,因为它有容易理解的API和大家熟悉的语法。在 的包存储库的强力支持下,Node.js的生态必将 加繁荣。 在本书中,作者证明了Node.js在构建可观察、可扩展且有弹性的服务方面与传统的企业平台一样适用。中 Node.js开发人员会发现,他们可以将应用程序代码和现代服务的各个层面结合起来。 通过学习本书,你可以: ?了解为什么要运行多个相同的Node.js服务副本。 ?根据业务场景选择恰当的协议。 ?调整应用程序容器以便在生产环境中运行。 ?跟踪分布式系统中的错误,以确定哪个服务出错。 ?通过将工作转移给反向代理来简化应用程序代码并提高性能。 ?构建数据面板来监视服务运行状况和数据吞吐量。 ?了解在企业环境中操作时需要使用多种工具的原因。
Node.js是一个基于Chrome V8引擎的JavaScript运行时环境,使用了高效、轻量级的事件驱动、非阻塞 I/O 模型,让JavaScript 运行在服务端的开发平台。本书主要介绍基于Node.js构建企业级后端服务,内容涉及Node.js和JavaScript的特性介绍、通信协议、扩展、可观测性、Docker容器、部署、容器编排、应用程序容错、分布式单元、应用程序安全性等内容。本书不是面向 Node.js新手的,适用于拥有Node.js 实战经验且熟练掌握JavaScript的开发人员。读完本书,你会了解在生产环境中运行 Node.js 服务所需的许多技术。
序言1<br/>前言3<br/>第1章 为什么要用分布式9<br/>1.1 JavaScript的单线程特性9<br/>1.2 Node.js 速览13<br/>1.3 Node.js的事件循环16<br/>1.4 示例应用程序21<br/>第2章 协议26<br/>2.1 使用HTTP请求和响应27<br/>2.2 使用GraphQL构建API外观39<br/>2.3 使用gRPC进行RPC通信46<br/>第3章 扩展54<br/>3.1 集群模块54<br/>3.2 使用HAProxy实现反向代理61<br/>3.3 SLA和负载测试72<br/>第4章 可观测性85<br/>4.1 运行环境85<br/>4.2 ELK与日志87<br/>4.3 Graphite、StatsD和Grafana度量指标94<br/>4.4 使用Zipkin进行分布式请求跟踪102<br/>4.5 运行状况检查110<br/>4.6 使用 Cabot 进行报警113<br/>第5章 容器119<br/>5.1 Docker简介121<br/>5.2 容器化Node.js服务127<br/>5.3 使用 Docker Compose进行基本编排135<br/>5.4 内部Docker 注册表140<br/>第6章 部署145<br/>6.1 使用 Travis CI 构建流水线146<br/>6.2 自动化测试151<br/>6.3 部署Heroku162<br/>6.4 模块、包和SemVer168<br/>6.5 内部npm注册表179<br/>第7章 容器编排184<br/>7.1 Kubernetes 简介185<br/>7.2 启动188<br/>7.3 部署应用程序192<br/>7.4 服务发现199<br/>7.5 修改部署204<br/>第8章 弹性210<br/>8.1 Node.js 进程的终止210<br/>8.2 构建无状态服务218<br/>8.3 使用Memcached构建外部缓存224<br/>8.4 数据库连接的弹性229<br/>8.5 使用Kne 行Schema 迁移238<br/>8.6 幂等性和消息传递弹性248<br/>8.7 弹性测试255<br/>第9章 分布式基元259<br/>9.1 ID 生成问题259<br/>9.2 Redis 简介262<br/>9.3 Redis 操作263<br/>9.4 寻求原子性272<br/>9.5 事务274<br/>9.6 Lua脚本276<br/> 0章 安全性281<br/>10.1 繁杂的代码库281<br/>10.2 认识攻击面283<br/>10.3 应用程序配置287<br/>10.4 升级依赖项292<br/>10.5 升级Node.js298<br/>附录A 安装HAProxy303<br/>附录B 安装Docker305<br/>附录 C 安装Minikube和Kubectl307