如何用NodeJS构建微服务

505 阅读7分钟

如何用NodeJS构建微服务

用NodeJS构建微服务是一个事件驱动的开发架构,它允许你开发功能丰富、可扩展和可靠的应用程序。

什么是微服务?

微服务是面向服务架构 (SOA)的一种类型。它是一种基于组件的模型,应用程序的结构是由明确定义的协议(如HTTP)和独立组件的组合组成的。更简单地说,它是一种用于使用容器开发分布式应用的架构,其中集成到应用中的每个功能都作为一个独立的服务为你的业务服务。微服务最重要的特点是它们的API阵列。

此外,用微服务开发应用程序可以提高模块化程度,同时还可以独立部署应用程序的每一部分,并单独测试各个单元。

一些知名的企业巨头在其应用程序中使用这种架构,包括Netflix、亚马逊、Uber、SoundCloud和许多其他品牌。用微服务开发应用程序,一些最好的编程语言是Golang、NodeJS、Python、Java等。

现在,我们已经用最简单的术语展示了什么是微服务架构,对你来说,了解它是否有益,以及你应该选择哪种编程语言来开发微服务也很重要。

微服务的优势

使用微服务来开发一个广泛而动态的商业应用已经是一个好处。但除此之外,还有不计其数的好处可以指望,并帮助你更好地决定。以下是我们列出的一些优势,供你参考。

  1. 它有一个更顺利的部署过程,应用程序的部分内容不会影响整个应用程序,因为它是按服务部署的。

  2. 易于理解,因为功能是隔离和独立的。

  3. 微服务架构有助于建立高度弹性和可靠的应用程序。

  4. 应用程序中某一特定服务的故障仍在其内部,它不会影响应用程序的整个特征和功能。

  5. 一个额外的好处是,在微服务架构上开发应用程序时,不同服务的代码可以用不同的语言编写。

  6. 用微服务架构构建的应用程序通常没有停机时间。

  7. 它根据单个架构而不是整个应用所需的资源提供可扩展的应用。

  8. 另一个额外的优势是对开发者而言;它提供了一种简化的体验,因为他们不必了解完整的系统;他们只需要了解他们所从事的功能或服务,这反过来又节省了时间和金钱,提高了生产力。

上面提到的只是用微服务开发应用程序的一些重要好处,清单上还有很多,你在开发应用程序的过程中会遇到。但要确保你也了解到微服务的缺点。虽然缺点不多,但在工作高效的情况下,这些缺点可以被排除。

主要的缺点是,如果流程的架构不正确,可能会给开发人员带来问题,因为系统过于分散。还有,监控微服务架构有时会变得很复杂,因为整个系统有多个故障点,这反过来也会增加应用程序的测试复杂性。

使用NodeJS构建微服务的原因

在所有用于开发微服务应用程序的编程语言中,NodeJS因其特点和提供的好处而被几乎所有开发人员广泛使用。以下是使用Node.JS的微服务是最佳选择的几个原因。

  1. 它提高了执行时间,因为NodeJS运行在谷歌的V8引擎上,将功能编译成本地机器代码,还能进行低延迟的CPU 和IO密集型操作。

  2. NodeJS的事件驱动架构使其在开发事件驱动的应用程序时非常有利。

  3. NodeJS库支持非阻塞式调用,无需等待前一个调用的返回就能继续工作。

  4. 用NodeJS构建的应用程序是可扩展的,这意味着执行模型支持通过将请求分配给其他工作线程来进行扩展。

以上提到的是用NodeJS构建微服务的几个原因,既然我们已经回顾了选择NodeJS的主要原因,现在也应该教你如何用NodeJS构建微服务。

如何用NodeJS创建微服务

用Node.JS构建微服务很容易,因为它有无数的好处。下面我们提到了关于如何构建微服务应用程序的分步指南。那么我们开始吧。

  1. 主要步骤是确定业务需求,这意味着你需要了解开发微服务的服务要求。

  2. 第二步是将NodeJS安装到你的系统中,并安装Node包管理器来安装依赖。

你可以从NodeSource或Node.js snaps找到基于Ubuntu和Debian的Node.js二进制分发的兼容包。而为了管理这些包,你需要fnm--一个快速而简单的node.js,它可以管理所有发布的Node.js版本,并允许你根据当前使用的目录自动安装、卸载和切换版本。你可以从使用安装脚本来安装。

3.下 一步是设置服务器,识别和分配路由,创建和插入控制器逻辑,并与外部服务建立连接。

4.创 建路由、控制器逻辑和建立连接后,下一步是建立 外部API调用,以处理第三方API。

为了说明NodeJS在微服务中的使用,我们将使用AccuWeather API服务。你可以创建一个免费的AccuWeather账户。

在你的系统中创建一个新的文件夹,命名为Accuweather-microservice,并在你的代码编辑器中打开它,通过运行下面的命令确保你的系统已经预装了Node.js。

node -v

如果没有安装,你可以从NodeJS官方网站下载。 在Accuweather-microservice中,运行命令来初始化package.json。

Run npm init or npm init -y

通过npm init,你可以自定义字段,用npm init -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",

5.在 创建package.json文件后,你需要创建一个index.js文件,它将是应用程序的主文件,并在Accuweather-microservice文件夹内创建一个名为api_source的文件夹,它将包含控制器和处理请求的路由。

6现在,你可以在主文件夹内创建一个服务文件夹,建立一个weather.js文件,与外部API连接并处理请求/回复。

7现在,最后一步是执行,应用程序可以运行了。

上述步骤只是用NodeJS构建微服务应用程序的一个简单过程,将有助于你的项目。

现在我们知道了微服务,它们的好处,以及如何使用NodeJS构建它们,接下来你可以做的就是开始着手你的项目。虽然如果你不熟悉微服务,可能会显得很困惑,但在适当的指导下,你一定能开发出可扩展的、一流的应用程序。

应用 构建(游戏引擎) 微服务

DZone撰稿人所表达的观点属于他们自己。