内容简介
从初创公司到世界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 使用请求和响应 2.2 使用GraphQL构建API外观 2.3 使用gRP行RPC通信第3章 扩展 3.1 集群模块 3.2 使用HAProxy实现反向代理 3.3 SLA和负载测试第4章 可观测 4.1 运行环境 4.2 ELK与日志 4.3 Graphite、StatsD和Grafana度量指标 4.4 使用Zipki行分布式请求跟踪 4.5 运行状况检查 4.6 使用Cabo行报警第5章 容器 5.1 Docker简介 5.2 容器化Node.js服务 5.3 使用Docker Compos行基本编排 5.4 内部Docker注册表第6章 部署 6.1 使用TravisCI构建流水线 6.2 自动化测试 6.3 部署Heroku 6.4 模块和SemVer 6.5 内部npm注册表第7章 容器编排 7.1 Kuberes简介 7.2 启动 7.3 部署应用程序 7.4 服务发现 7.5 修改部署第8章 弹 8.1 Node.j程的终止 8.2 构建无状态服务 8.3 使用Memcached构建外部缓存 8.4 数据库连接的弹 8.5 使用Kne行Schema迁移 8.6 幂等和消息传递弹 8.7 弹测试第9章 分布式基元 9.1 ID生成问题 9.2 Redis简介 9.3 Redisr/> 9.4 寻求原子 9.5 事务 9.6 Lua脚本第10章 10.1 繁杂的代码库 10.2 认识攻击面 10.3 应用程序配置 10.4 升级依赖项 10.5 升级Node.jr/>附录A 安装HAProxy附录B 安装Docker附录C 安装Minikube和Kubectl