简介
microservice-seed 是一个 Node.js 微服务架构的模版。该模版基于 Node.js 平台和 Express.js 框架,旨在帮助开发者快速搭建 Node.js 微服务框架。使用 microservice-seed,你可以通过一些简单的配置和开发,快速构建出符合业务需求的高效可扩展的 Node.js 微服务。
安装
microservice-seed 可以通过 npm 安装,安装命令如下:
$ npm install microservice-seed
安装完成后,我们就可以在项目中使用该包了。
基本使用
使用 microservice-seed 构建一个微服务的步骤如下:
- 克隆项目到本地:
$ git clone https://github.com/ntdc/microservice-seed.git
- 安装依赖包:
$ npm install
- 启动微服务:
$ npm start
通过以上三个步骤,我们就成功搭建了一个微服务。
代码解析
在基本使用中,我们可以运行起微服务,但是我们了解更多的背后是如何实现的,下面我会通过一个简单的例子,介绍 microservice-seed 的实现原理。
路由
路由是一个 web 框架中必不可少的部分,microservice-seed 采用 Express.js 框架来处理路由。
在 microservice-seed 中,路由和控制器融合在一起,类似于 Java 中的 Servlet 和 Service。在路由文件中,定义了具体的 API 映射路径和对应的处理函数。
例如 microservice-seed 中提供了一个简单的 /
路由,对应的处理函数为 index
,代码如下:
var express = require('express'); var router = express.Router(); router.get('/', function(req, res, next) { res.json({message: 'Welcome to microservice-seed project!'}); }); module.exports = router;
上面的代码中,Express.Router() 的返回值是一个路由器实例,我们可以通过该实例定义 API 映射路径和对应的处理函数。
服务发现
微服务的体系需要有一种服务发现的机制,microservice-seed 采用 consual 服务来实现,在启动服务的时候,该服务同时也会自己发布一个服务到 consual 中。
提供的代码如下:
-- -------------------- ---- ------- --- ------ - ------------------ --- ------------ - - ----- ------------ ----- ----- ---------- ---- -- --- --------- - --------------------------- --- ----------- - ----- --- ----------- - --------------------------- --- -------------- - - ----- ------------ ----- ------------ ----- --- ------ - ----- ----------------------------------------- --------- ----- - -- ----------------------------------------------------------- -------- ----- --------- - -- ----- - ------------------- ----- ---- - -------------------- ---------- --------------- -------------- ---
这里的服务注册是通过 consual SDK 实现的,consul(consulConfig).agent.service.register(serviceDetails)
表示向 consual 注册当前服务,并指定服务的信息。其中 serviceDetails
包含了服务的名称、端口号等信息。
服务注册后,我们可以在 consual 的 Web 界面上看到当前服务。
配置文件
微服务中的配置文件也是非常重要的一部分,microservice-seed 中采用 config
来管理微服务的配置,包括 API 映射路径、接口相关信息以及后端服务信息等。
提供的代码如下:
-- -------------------- ---- ------- -------------- - - ------- - ----- ---- -- --------- - - ----- ---------- ---- ------------------------ -------- ----- ------- - - ----- ------------ ------- ------ ------- ------ ------- ----- ------- - - ----- ----- ----- ---------- --------- ---- -- - ----- ------- ----- --------- --------- ---- - - - - - - --
从上面的代码中,我们可以看到配置文件中包含了服务的端口号以及各个服务的配置信息,最后一行是指当前服务所依赖后端服务的 API 映射信息。该部分在服务启动的时候会被自动加载,并生成对应的 API 映射路径。
集成 Test
测试是软件开发中非常重要的部分,microservice-seed 也提供了一个测试框架,可自定义测试逻辑。
提供的代码如下:
-- -------------------- ---- ------- -- ------ --------------- ---------- - --- ------- --------------------- - ------ - ----------------- -- ----- ---- ----- ------ -- --------- ---------------- ------ --- ------------- --- ---------- - ----------- ---- ------ -------------- - --------------- --------- -------------- ------------------- ----------------------- ------- ------------ --------- -------- -- ----------------- ----------- ------ -- -- ---
这里的测试用例利用 express 中 response 对象返回 json 数据,然后利用 supertest 库模拟请求过程。
结语
microservice-seed 在快速搭建微服务方面帮助了很多人。本篇文章中对该项目的部分实现细节和主要内容进行了详细的描述,希望本篇文章能为大家提供一些指导和帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066f471d8e776d0804101f