描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121305245
√ 理解Node.js模块并掌握在与微服务打交道时的*实践
√ 将现有的单块系统重新架构成面向微服务的软件
√ 使用Seneca和Node.js构建出健壮且可伸缩的微服务
√ 对微服务进行隔离测试从而创建出可靠的系统
√ 使用PM2部署并管理微服务
√ 监控微服务的健康状况(CPU、内存以及I/O)
前言
作为一本微服务入门的实践指南,本书采用了Node.js和以Seneca、PM2为主的现代框架来进行阐述。在各章中,我们将分别介绍如何利用实践去设计、构建、测试以及部署微服务。此外,我们还会讨论另外一个有价值的课题——如何在设计系统时做出合理的妥协,来避免过度设计和确保技术方案与实际业务需求相匹配。
本书概述
第1章主要讲述微服务的基本概念,包括主要优点和一些缺点,本章内容是本书后续章节的基础。
第2章介绍了Node.js、Seneca和PM2。还讨论了Node.js应用的结构,以及如何通过PM2来运行应用。另外,我们还研究了一些Seneca与PM2的替代产品。
第3章主要讲述如何使用微服务来处理自然增长(计划之外的软件需求变更)。另外,我们还讨论了如何将单块应用分解成微服务。
第4章阐述了如何编写我们的个微服务程序。
第5章涉及了安全性与可追溯性,这是现代系统的两大重要特性,因为我们需要保证信息的安全与操作的可追溯性。在本章中,我们讨论了使用Seneca来保证安全性与可追溯性的方法。
第6章主要介绍了Node.js的两大主流测试框架——Mocha和Chai。同时使用Sinon来mock服务以及Swagger来为微服务进行文档化。
第7章使用PM2结合Keymetrics来监控微服务,使PM2的功能得到发挥。
第8章通过使用PM2,学习如何在不同环境下部署微服务,并通过单条命令管理应用的“生态系统”,从而减少微服务架构带来的开销。我们还将讨论Docker,它是一个应用容器引擎,可以部署包括Node应用在内的各种应用。
阅读本书的准备工作
为了能够完成本书的实践案例,需要预先安装Node.js、PM2(可以通过npm来安装),以及MongoDB。此外还需要一个编辑器,我个人选用了Atom,但是一般通用的编辑器都能满足需求。
本书的读者对象
本书适合具有一定Node.js经验,并且想要学习Seneca以及微服务知识的开发者。在本书中,有70%的内容是面向实践的(因此我们会编写大量代码),有30%是理论知识。基于编写的这些代码可以帮助读者将书中提到的模式应用到新的软件开发中去。
约定惯例
本书将会使用不同的书写风格来区分不同种类的信息。以下是这些风格的例子和它们的意义。
正文中的文本代码、数据库表名、文件夹名、文件名、文件扩展名、路径名、URL、用户输入和推特用户定位(Twitter handles)将会用代码体书写,如“我们知道输入参数是一个PaymentRequest实例”。
代码块则将会是这样的风格:
public interface PaymentService {
PaymentResponse processPayment(PaymentRequest request) throws
MyBusinessException;
}
如果希望向你强调代码块中的一部分,那么它们将会以粗体展示:
function() {
sinon.stub(Math, “random”);
rollDice();
console.log(Math.random.calledWith());
});
after(function(){
Math.random.restore();
});
任何命令行的输入和输出将是以下这样的:
node index.js
npm start
警告和关键提醒将会在这样的图标后出现。
小提示和小技巧将会在这样的图标后出现。
下载示例代码
你可以从下载所有已购买的博文视点书籍的示例代码文件。
勘误表
虽然我们已经尽力谨慎地确保内容的准确性,但错误仍然存在。如果你发现了书中的错误,包括正文和代码中的错误,请告诉我们,我们会非常感激你。这样,你不仅帮助了其他读者,也帮助我们改进后续的出版。如发现任何勘误,可以在博文视点网站相应图书的页面提交勘误信息。一旦你找到的错误被证实,你提交的信息就会被接受,我们的网站也会发布这些勘误信息。你可以随时浏览图书页面,查看已发布的勘误信息。
评论
还没有评论。