译者 | 李睿
审校 | 孙淑娟
使用Node.js构建微服务是一种事件驱动的开发架构,允许开发人员开发功能加载、可扩展和可靠的应用程序。
构建应用程序不仅要满足客户的要求,还要将复杂的功能与动态编程集成在一起,以维护用户体验和代码质量。在开发加载功能的大型应用程序时,确保应用程序平稳运行非常重要。
本文将介绍微服务架构、优势以及如何使用Node.js开发微服务。
1.什么是微服务?
微服务是一种面向服务的架构(SOA)。它是一个基于组件的模型,其中应用程序由定义良好的协议(如HTTP)和独立组件的组合构成。简单来说,它是一种用于使用容器开发分布式应用程序的架构,其中集成到应用程序中的每个功能都充当企业业务的独立服务。微服务最重要的特征是它们的API数组。
此外,使用微服务开发应用程序可以提高模块化程度,同时还可以独立部署应用程序的每个部分,并单独测试单元。
一些在其应用程序中使用这种架构的知名企业巨头包括Netflix、Amazon、Uber、SoundCloud和许多其他品牌。为了开发带有微服务的应用程序,一些最好的编程语言是Golang、Node.js、Python、Java等等。
既然已经用最简单的术语演示了什么是微服务架构,那么了解它是否有益以及应该选择哪种编程语言来开发微服务也很重要。
2.微服务的优势
使用微服务开发广泛而动态的业务应用程序已经是一种好处。但除此之外,还有很多好处可以帮助开发人员做出更好的决定。以下是微服务的一些优势:
(1)部署过程更流畅,部分应用程序不会影响整个应用程序,因为它是逐个服务部署的。
(2)功能独立,易于理解。
(3)微服务架构有助于构建高弹性和可靠的应用程序。
(4)应用程序中某个特定服务的故障仍在其内部;它不会影响应用程序的整个特性和功能。
(5)另一个好处是,在微服务架构上开发应用程序时,可以用不同的语言编写不同服务的代码。
(6)使用微服务架构构建的应用程序通常不会停机。
(7)它基于单个架构而不是整个应用程序所需的资源提供可扩展的应用程序。
(8)另一个额外的好处是对开发人员而言;它提供了一种简化的体验,因为他们不必了解完整的系统;他们只需要了解正在处理的功能或服务,从而节省时间和费用,并提高生产力。
上面提到的只是使用微服务开发应用程序的一些重要好处,在应用程序的开发过程中会遇到更多的好处。但需要确保了解微服务的缺点。虽然没有太多的缺点,但只要高效完成工作,就可以排除这些缺点。
其主要缺点是,如果流程架构不正确,则可能会给开发人员带来系统过度碎片化的问题。此外,监控微服务架构有时会变得复杂,因为整个系统存在多个故障点,这反过来也增加了应用程序的测试复杂性。
3.使用Node.js构建微服务的原因
在微服务应用程序开发中使用的所有编程语言中,Node.js因其特性和提供的好处而被开发人员广泛使用。以下是选择使用Node.js构建微服务的几个原因。
(1)Node.js运行在谷歌V8引擎上,提高了执行时间,将函数编译为原生机器码,同时进行低延迟的CPU和IO密集型操作。
(2)Node.js的事件驱动架构使其非常有利于开发事件驱动的应用程序。
(3)Node.js库支持非阻塞调用,无需等待前一个调用返回即可继续工作。
(4)使用Node.js构建的应用程序是可扩展的,这意味着执行模型通过将请求分配给其他工作线程来支持扩展。
既然已经了解了选择Node.js的主要原因,现在还应该学习如何使用Node.js构建微服务。
4.如何使用Node.js创建微服务
使用Node.js构建微服务很容易,因为它有很多的好处。以下是如何构建微服务应用程序的分步指南。
(1)第一步是是确定业务需求,这意味着开发人员需要了解其服务对开发微服务的需求。
(2)第二步是安装Node.js到系统中,安装Node Package Manager来安装依赖项。可以从Node Source或Node.jssnaps中找到基于Ubuntu和Debian的兼容Node.js二进制分发包。要管理这些分发包,将需要fnm:这是一个快速而简单的Node.js,它管理所有已发布的Node.js版本,并允许根据当前使用的目录自动安装、卸载和切换版本。可以使用安装脚本进行安装。
(3)下一步是搭建服务器并识别和分配路由,创建和插入控制器逻辑,并与外部服务建立连接。
(4)创建路由、控制器逻辑、建立连接后,下一步就是构建外部API调用来处理第三方API。
为了说明Node.js在微服务中的使用,将使用AccuWeather API服务。可以创建一个免费的AccuWeather帐户。
在系统上创建一个新文件夹,并将其命名为Accuweather-microservice并在代码编辑器中打开它,确保系统已预装节点。通过运行以下命令:node -v
如果没有安装,可以到Node.js官网下载。在Accuweather-microservice中,运行命令初始化package.json:Run npm init or npm init -y
使用npminit,可以自定义字段以使用npminit-y创建package.json文件;可以使用默认字段来创建package.json文件。
现在要安装所有必需的依赖项,需要运行以下命令:run npm install Express nodemon request
执行上述步骤后,其文件将类似于以下代码:
{
"name": "Accuweather-microservice",
"version": "0.1.0",
"private": true,
"description": "Build a microservice using nodejs with AccuWeather Data Service",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node app.js",
"dev": "nodemon app.js"
},
"author": "",
"license": "ISC",
"dependencies": {
"bcryptjs": "^2.4.3",
"cookie-parser": "^1.4.6",
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
(5)在创建package.json文件之后,需要创建一个index.js文件作为应用程序的主文件,并在Accuweather-microservice文件夹中创建一个名为api_source的文件夹,其中包含要处理的控制器和路由要求。
(6)现在,可以在主文件夹中创建一个服务文件夹,以构建一个与外部API连接并处理请求/响应的weather.js文件。
(7)现在最后一步是执行,此时应用程序已准备好运行。
上述步骤只是使用Node.js构建微服务应用程序的一个简短过程,它将帮助完成项目。
既然了解了微服务、它们的好处以及如何使用Node.js构建它们,接下来可以做的就是开始处理项目。尽管不了解微服务可能会让人感到困惑,但在适当的指导下,一定能够开发出可扩展和一流的应用程序。
原文链接:https://dzone.com/articles/how-to-build-microservices-with-nodejs