Node.js微服务pdf扫描版
分享到:
Node.js微服务对如何采用Node.js及其生态工具进行微服务开发的*实践做了全面的介绍,内容包括对微服务架构基本概念及设计原则的讲解,以及如何采用Node.js搭配Seneca、PM2和Docker等现代化工具来构建、测试、监控以及部署轻量级微服务,同时也阐述了Node.js在微服务实践中所涉及的相关概念,并就微服务的优缺点、文档化、安全性以及可追溯性等主题进行了探讨。适合掌握服务端开发基本知识的Node.js开发者以及使用Java、C#等其他服务端技术栈并对微服务实践感兴趣的所有开发者。有需要的朋友欢迎来3322软件站免费下载。
《Node.js微服务》适合掌握服务端开发基本知识的Node.js 开发者以及使用Java、C#等其他服务端技术栈并对微服务实践感兴趣的所有开发者。
ISBN:9787121305245
版次:1
商品编码:12023479
品牌:Broadview
包装:平装
开本:16开
出版时间:2017-01-01
用纸:胶版纸
页数:256
正文语种:中文
审校者
Kishore.Kumar.Yekkanti是一名经验丰富的专家,他在过去的十年里曾与不同的领域和技术打过交道。他对软件开发中的消除浪费尤具热情。Kishore是敏捷原则的巨大贡献者和遵循者。他是一名善于开发端到端系统的全栈开发者,同时也是一名通晓多种语言的程序员。目前他专注于高度分布式应用中的微服务扩展,而这些应用部署于云端基于容器的系统(Docker)之中。他曾在多家知名的公司担任过首席工程师,这些公司包括Thoughtworks、CurrencyFair 等。他曾通过微服务为这些公司的团队带来新生。
理解Node.js模块并掌握在与微服务打交道时的zui佳实践
将现有的单块系统重新架构成面向微服务的软件
使用Seneca和Node.js构建出健壮且可伸缩的微服务
对微服务进行隔离测试从而创建出可靠的系统
使用PM2部署并管理微服务
监控微服务的健康状况(CPU、内存以及I/O)
微服务应运而生1
单块软件2
现实世界中的微服务2
面向微服务的架构3
为什么面向微服务的架构更好3
不足之处3
关键设计原则4
从组件到业务单元5
智能的服务,愚蠢的通信管道7
去中心化8
技术对比10
多微才是足够的微10
关键的好处11
弹性11
可伸缩性11
技术多样性13
可替换性14
独立性15
SOA与微服务的比较16
为什么选择Node.js18
API聚合18
展望Node.js19
小结20
2 基于Seneca和PM2构建Node.js微服务21
选择Node.js的理由21
安装Node.js、npm、Seneca和PM222
第一个程序——Hello World25
Node.js的线程模型27
模块化组织的最佳实践27
微服务框架Seneca32
实现控制反转35
Seneca的模式匹配35
PM2——Node.js的任务执行器46
单线程应用及异常46
PM2——业界标准的任务执行器47
小结52
3 从单块软件到微服务53
首先,我们拥有一个单块软件53
如何控制自然增长54
多抽象才是过度抽象57
微服务的出现58
微服务的缺陷64
分割单块软件64
数据才是分割单块软件的主要问题65
组织架构适配66
小结67
4 编写你的第一个Node.js微服务69
微电子商务概览69
商品管理服务——双重核心71
获取商品信息72
获取指定类别的商品73
根据ID获取商品74
添加商品75
删除商品75
编辑商品76
整合各模块76
集成Express与Seneca——如何创建REST API81
邮件服务:一个常见的问题82
如何发送邮件82
接口定义83
设置Mandrill84
亲自动手在微服务中集成Mandrill86
回退策略91
订单管理服务92
根据如何获取非本地数据来定义微服务93
订单管理服务代码95
UI——API聚合的产物99
前端微服务的必要性99
代码99
服务降级——当出现非灾难性故障时107
断路器108
Seneca——一块使我们工作变得更容易的拼图109
Seneca和promise111
调试115
小结118
5 安全性和可追溯性119
基础设施的逻辑安全119
利用SSH来对通信加密120
应用程序安全122
保持安全方面的与时俱进来应对常见威胁123
有效的代码审阅131
可追溯性132
日志132
请求追踪134
审计135
HTTP状态码136
小结138
6 Node.js微服务的测试及文档化140
功能性测试141
自动化测试的金字塔142
采用Node.js测试微服务145
对微服务进行文档化175
采用Swagger对API进行文档化175
根据Swagger定义来生成项目182
小结184
7 微服务的监控185
服务监控185
采用PM2和Keymetrics进行监控186
类人猿大军—来自Netflix的主动监控201
吞吐量和性能的降级204
小结206
8 微服务的部署208
软件部署的一些概念208
持续集成209
持续交付209
采用PM2进行部署209
PM2中的“生态系统”210
采用PM2来部署微服务212
Docker——一种可用于软件交付的容器213
组装容器215
部署Node.js应用221
将Docker容器的创建过程自动化223
Node.js事件循环—入门容易精通难225
Node.js应用的集群化228
为应用增加负载均衡233
NGINX的健康检查238
小结239
作为一本微服务入门的实践指南,本书采用了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
警告和关键提醒将会在这样的图标后出现。
小提示和小技巧将会在这样的图标后出现。
下载示例代码
你可以从http://www.broadview.com.cn下载所有已购买的博文视点书籍的示例代码文件。
勘误表
虽然我们已经尽力谨慎地确保内容的准确性,但错误仍然存在。如果你发现了书中的错误,包括正文和代码中的错误,请告诉我们,我们会非常感激你。这样,你不仅帮助了其他读者,也帮助我们改进后续的出版。如发现任何勘误,可以在博文视点网站相应图书的页面提交勘误信息。一旦你找到的错误被证实,你提交的信息就会被接受,我们的网站也会发布这些勘误信息。你可以随时浏览图书页面,查看已发布的勘误信息。
Node.js微服务禁用于商业用途!如果您喜欢《Node.js微服务》,请购买正版,谢谢合作。
爱学习,请到3322软件站 / 查找资源自行下载!
2、如果打不开本文件,请务必在3322软件站选择一款阅读器下载
3、安装后,在打开解压得出的pdf文件
4、双击进行阅读
方法二:
1、在手机里下载3322软件站中的阅读器和百度网盘
2、直接将pdf传输到百度网盘
3、用阅读器打开即可阅读
Node.js微服务内容介绍:
《Node.js微服务》对如何采用Node.js及其生态工具进行微服务开发的zui佳实践做了全面的介绍,内容包括对微服务架构基本概念及设计原则的讲解,以及如何采用Node.js 搭配Seneca、PM2 和Docker 等现代化工具来构建、测试、监控以及部署轻量级微服务,同时也阐述了Node.js 在微服务实践中所涉及的相关概念,并就微服务的优缺点、文档化、安全性以及可追溯性等主题进行了探讨。《Node.js微服务》适合掌握服务端开发基本知识的Node.js 开发者以及使用Java、C#等其他服务端技术栈并对微服务实践感兴趣的所有开发者。
Node.js微服务简介:
出版社: 电子工业出版社ISBN:9787121305245
版次:1
商品编码:12023479
品牌:Broadview
包装:平装
开本:16开
出版时间:2017-01-01
用纸:胶版纸
页数:256
正文语种:中文
Node.js微服务作者简介:
David.Gonzalez是一名在编程语言方面“极不专一”的软件工程师,他在金融服务行业“混迹”多年。他尝试找到抽象层次合适的解决方案,并探索着如何保证既不过于具体也不过于抽象之间的平衡。David曾求学于西班牙,但是不久之后便转战都柏林,自2011年起便定居于此并开启了更为宽广和有趣的职业生涯。他目前是一名金融技术领域的独立咨询师。他的Linkedin账号地址是:https://ie.linkedin.com/in/david-gonzalez-737b7383。David 乐于尝试新的技术和范式,从而能让自己在软件开发的复杂世界中不断拓展出新的版图。审校者
Kishore.Kumar.Yekkanti是一名经验丰富的专家,他在过去的十年里曾与不同的领域和技术打过交道。他对软件开发中的消除浪费尤具热情。Kishore是敏捷原则的巨大贡献者和遵循者。他是一名善于开发端到端系统的全栈开发者,同时也是一名通晓多种语言的程序员。目前他专注于高度分布式应用中的微服务扩展,而这些应用部署于云端基于容器的系统(Docker)之中。他曾在多家知名的公司担任过首席工程师,这些公司包括Thoughtworks、CurrencyFair 等。他曾通过微服务为这些公司的团队带来新生。
Node.js微服务编辑推荐:
本书内容要点:理解Node.js模块并掌握在与微服务打交道时的zui佳实践
将现有的单块系统重新架构成面向微服务的软件
使用Seneca和Node.js构建出健壮且可伸缩的微服务
对微服务进行隔离测试从而创建出可靠的系统
使用PM2部署并管理微服务
监控微服务的健康状况(CPU、内存以及I/O)
Node.js微服务目录:
1 微服务架构1微服务应运而生1
单块软件2
现实世界中的微服务2
面向微服务的架构3
为什么面向微服务的架构更好3
不足之处3
关键设计原则4
从组件到业务单元5
智能的服务,愚蠢的通信管道7
去中心化8
技术对比10
多微才是足够的微10
关键的好处11
弹性11
可伸缩性11
技术多样性13
可替换性14
独立性15
SOA与微服务的比较16
为什么选择Node.js18
API聚合18
展望Node.js19
小结20
2 基于Seneca和PM2构建Node.js微服务21
选择Node.js的理由21
安装Node.js、npm、Seneca和PM222
第一个程序——Hello World25
Node.js的线程模型27
模块化组织的最佳实践27
微服务框架Seneca32
实现控制反转35
Seneca的模式匹配35
PM2——Node.js的任务执行器46
单线程应用及异常46
PM2——业界标准的任务执行器47
小结52
3 从单块软件到微服务53
首先,我们拥有一个单块软件53
如何控制自然增长54
多抽象才是过度抽象57
微服务的出现58
微服务的缺陷64
分割单块软件64
数据才是分割单块软件的主要问题65
组织架构适配66
小结67
4 编写你的第一个Node.js微服务69
微电子商务概览69
商品管理服务——双重核心71
获取商品信息72
获取指定类别的商品73
根据ID获取商品74
添加商品75
删除商品75
编辑商品76
整合各模块76
集成Express与Seneca——如何创建REST API81
邮件服务:一个常见的问题82
如何发送邮件82
接口定义83
设置Mandrill84
亲自动手在微服务中集成Mandrill86
回退策略91
订单管理服务92
根据如何获取非本地数据来定义微服务93
订单管理服务代码95
UI——API聚合的产物99
前端微服务的必要性99
代码99
服务降级——当出现非灾难性故障时107
断路器108
Seneca——一块使我们工作变得更容易的拼图109
Seneca和promise111
调试115
小结118
5 安全性和可追溯性119
基础设施的逻辑安全119
利用SSH来对通信加密120
应用程序安全122
保持安全方面的与时俱进来应对常见威胁123
有效的代码审阅131
可追溯性132
日志132
请求追踪134
审计135
HTTP状态码136
小结138
6 Node.js微服务的测试及文档化140
功能性测试141
自动化测试的金字塔142
采用Node.js测试微服务145
对微服务进行文档化175
采用Swagger对API进行文档化175
根据Swagger定义来生成项目182
小结184
7 微服务的监控185
服务监控185
采用PM2和Keymetrics进行监控186
类人猿大军—来自Netflix的主动监控201
吞吐量和性能的降级204
小结206
8 微服务的部署208
软件部署的一些概念208
持续集成209
持续交付209
采用PM2进行部署209
PM2中的“生态系统”210
采用PM2来部署微服务212
Docker——一种可用于软件交付的容器213
组装容器215
部署Node.js应用221
将Docker容器的创建过程自动化223
Node.js事件循环—入门容易精通难225
Node.js应用的集群化228
为应用增加负载均衡233
NGINX的健康检查238
小结239
Node.js微服务前言:
前言作为一本微服务入门的实践指南,本书采用了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
警告和关键提醒将会在这样的图标后出现。
小提示和小技巧将会在这样的图标后出现。
下载示例代码
你可以从http://www.broadview.com.cn下载所有已购买的博文视点书籍的示例代码文件。
勘误表
虽然我们已经尽力谨慎地确保内容的准确性,但错误仍然存在。如果你发现了书中的错误,包括正文和代码中的错误,请告诉我们,我们会非常感激你。这样,你不仅帮助了其他读者,也帮助我们改进后续的出版。如发现任何勘误,可以在博文视点网站相应图书的页面提交勘误信息。一旦你找到的错误被证实,你提交的信息就会被接受,我们的网站也会发布这些勘误信息。你可以随时浏览图书页面,查看已发布的勘误信息。
免责声明:
Node.js微服务来源于网络,仅用于分享知识,学习和交流!请下载完在24小时内删除。Node.js微服务禁用于商业用途!如果您喜欢《Node.js微服务》,请购买正版,谢谢合作。
爱学习,请到3322软件站 / 查找资源自行下载!
使用说明:
方法一:1、下载并解压,得出pdf文件2、如果打不开本文件,请务必在3322软件站选择一款阅读器下载
3、安装后,在打开解压得出的pdf文件
4、双击进行阅读
方法二:
1、在手机里下载3322软件站中的阅读器和百度网盘
2、直接将pdf传输到百度网盘
3、用阅读器打开即可阅读
展开更多
Node.js微服务pdf扫描版下载地址
- 需先下载高速下载器:
- 专用下载:
- 其它下载: