使用Node.js构建微服务是一种事件驱动的开发架构,允许开发人员开发功能加载、可扩展和可靠的应用程序。
构建应用程序不仅要满足客户的要求,还要将复杂的功能与动态编程集成在一起,以维护用户体验和代码质量。在开发加载功能的大型应用程序时,确保应用程序平稳运行非常重要。
本文将介绍微服务架构、优势以及如何使用Node.js开发微服务。
微服务是一种面向服务的架构(SOA)。它是一个基于组件的模型,其中应用程序由定义良好的协议(如HTTP)和独立组件的组合构成。简单来说,它是一种用于使用容器开发分布式应用程序的架构,其中集成到应用程序中的每个功能都充当企业业务的独立服务。微服务最重要的特征是它们的api数组。
此外,使用微服务开发应用程序可以提高模块化程度,同时还可以独立部署应用程序的每个部分,并单独测试单元。
一些在其应用程序中使用这种架构的知名企业巨头包括Netflix、Amazon、Uber、SoundCloud和许多其他品牌。为了开发带有微服务的应用程序,一些最好的编程语言是Golang、Node.js、Python、Java等等。
既然已经用最简单的术语演示了什么是微服务架构,那么了解它是否有益以及应该选择哪种编程语言来开发微服务也很重要。
使用微服务开发广泛而动态的业务应用程序已经是一种好处。但除此之外,还有很多好处可以帮助开发人员做出更好的决定。以下是微服务的一些优势:
(1)部署过程更流畅,部分应用程序不会影响整个应用程序,因为它是逐个服务部署的。
(2)功能独立,易于理解。
(3)微服务架构有助于构建高弹性和可靠的应用程序。
(4)应用程序中某个特定服务的故障仍在其内部;它不会影响应用程序的整个特性和功能。
(5)另一个好处是,在微服务架构上开发应用程序时,可以用不同的语言编写不同服务的代码。
(6)使用微服务架构构建的应用程序通常不会停机。
(7)它基于单个架构而不是整个应用程序所需的资源提供可扩展的应用程序。
(8)另一个额外的好处是对开发人员而言;它提供了一种简化的体验,因为他们不必了解完整的系统;他们只需要了解正在处理的功能或服务,从而节省时间和费用,并提高生产力。
上面提到的只是使用微服务开发应用程序的一些重要好处,在应用程序的开发过程中会遇到更多的好处。但需要确保了解微服务的缺点。虽然没有太多的缺点,但只要高效完成工作,就可以排除这些缺点。
其主要缺点是,如果流程架构不正确,则可能会给开发人员带来系统过度碎片化的问题。此外,监控微服务架构有时会变得复杂,因为整个系统存在多个故障点,这反过来也增加了应用程序的测试复杂性。
在微服务应用程序开发中使用的所有编程语言中,Node.js因其特性和提供的好处而被开发人员广泛使用。以下是选择使用Node.js构建微服务的几个原因。
(1)Node.js运行在谷歌V8引擎上,提高了执行时间,将函数编译为原生机器码,同时进行低延迟的CPU和IO密集型操作。
(2)Node.js的事件驱动架构使其非常有利于开发事件驱动的应用程序。
(3)Node.js库支持非阻塞调用,无需等待前一个调用返回即可继续工作。
(4)使用Node.js构建的应用程序是可扩展的,这意味着执行模型通过将请求分配给其他工作线程来支持扩展。
既然已经了解了选择Node.js的主要原因,现在还应该学习如何使用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",
(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
作为容器集群管理技术竞争的大赢家,Kubernetes已经和微服务紧密联系,采用Kubernetes的企业往往都开始了微服务架构的探索。然而不同企业不同阶段的微服务实践面临的问题千差万别,注定要在技术路线上产生分叉
微服务本身并没有一个严格的定义,不过从很多人的反馈来看,大家都达成了这样一个共识:微服务是一种简单的应用,大概有10到100行代码。我知道使用代码行数来比较实现其实很不靠谱,因此你能理解这个意思就行,不必过分拘泥于细节
「 调用链监控 」是在微服务兴起后才有的一种新流行的监控模式。因为在我们传统单体应用的项目中,不存在服务链/调用链的概念,所以也就根本没有调用链监控的需求了
在Medium,我们的技术堆栈始于2012年的单体Node.js应用程序。我们已经构建了几个卫星服务,但我们还没有制定一个系统地采用微服务架构的策略。 随着系统变得越来越复杂并且团队不断发展
新兴技术的下一波浪潮正向我们涌来,人工智能、可穿戴设备、物联网及更多技术变得普及开来。许多组织现面临着管理这些整体式应用程序这个难题。当下,速度和灵活性必不可少
微服务被认为是一种理想的架构模式,因此,Steven Lemon 所在公司的领导层决定从单体架构向微服务架构迁移,这让整个开发团队在随后的的日子里苦不堪言,七大现实问题摆在面前无法解决,微服务架构的好处也没有享受到
微服务,并不仅仅是一种代码构造方式。微服务概念一出现就引发了热烈讨论,很多文章都喜欢将其与整体式架构比较,乃至来自大型企业的用例等。然而,在说起微服务时,开发人员关注的往往是这场革命的技术意义
Web应用架构受系统用户量、开发人员组织方式影响严重。过去二十年互联网迅速发展,Web架构也从单体式演进出微服务,背后还有比如 Martin Fowler 提出的理论支撑。虽然每个人都听说过微服务,但是很多人并不太清楚为什么要这么做
近些年微服务架构大行其道,趁着最近有时间,来捣鼓捣鼓微服务是怎么一回事。微服务的概念由 Martin Fowler 于2014年3月提出:微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间相互协调
NGINX从一开始就参与了微服务运动。 NGINX的轻巧,高性能和灵活性非常适合微服务。NGINX Docker映像是Docker Hub上排名第一的应用程序映像,您今天在Web上找到的大多数微服务平台都包含一个演示
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!