资源名称:Node.js微服务

内容简介:

《Node.js微服务》对如何采用Node.js 及其生态工具进行微服务开发的最佳实践做了全面的介绍,内容包括对微服务架构基本概念及设计原则的讲解,以及如何采用Node.js 搭配Seneca、PM2 和Docker 等现代化工具来构建、测试、监控以及部署轻量级微服务,同时也阐述了Node.js 在微服务实践中所涉及的相关概念,并就微服务的优缺点、文档化、安全性以及可追溯性等主题进行了探讨。

《Node.js微服务》适合掌握服务端开发基本知识的Node.js 开发者以及使用Java、C#等其他服务端技术栈并对微服务实践感兴趣的所有开发者。

资源目录:

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微服务