搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
Node.js微服务
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787121305245
  • 作      者:
    (美)David Gonzalez著
  • 出 版 社 :
    电子工业出版社
  • 出版日期:
    2017
收藏
编辑推荐

本书内容要点:

√  理解Node.js模块并掌握在与微服务打交道时的zui佳实践

√  将现有的单块系统重新架构成面向微服务的软件

√  使用Seneca和Node.js构建出健壮且可伸缩的微服务

√  对微服务进行隔离测试从而创建出可靠的系统

√  使用PM2部署并管理微服务

√  监控微服务的健康状况(CPU、内存以及I/O)

展开
作者简介

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佳实践做了全面的介绍,内容包括对微服务架构基本概念及设计原则的讲解,以及如何采用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

展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证