【Node.js】初识微服务

概述

Node.js 的微服务架构是一种通过将应用程序分解为独立的、松耦合的小服务的方式进行系统设计。

每个微服务负责处理一个特定的业务功能,并且这些服务可以独立开发、部署、扩展和管理,并且可以通讯。

它的核心思想就是解耦。

微服务和微前端是类似的,微前端就是借鉴了微服务的理念去设计的。

单体架构和微服务架构

  1. 单体架构适合小型,并发量不高的项目(5-10w),就是所有的功能放在单个项目里面
  2. 微服务架构适合大型项目,并发量高的情况,就是把每一个小模块单独拆分成一个小项目这样,可以独立部署

在这里插入图片描述

Node.js 微服务的开发步骤

微服务构建没有固定的实现方式,需要根据自己的业务调整。

目前流行monorepo架构,就是多项目使用一个仓库,也就是 Vue3 正在使用的架构模式。

需要pnpm支持。

tsconfig.json 由 全局 ts 的命令 tsc --init 生成。

基本目录结构:

在这里插入图片描述

配置 pnpm-workspace.yaml 进行管理:

pnpm-workspace.yaml

packages:# 自动扫描安装以下文件夹下各个模块的包- 'packages/*'- 'common/*'

然后执行 pnpm install ,每个package.json 管理的文件夹内都被安装上了相应的包(node_modules)。

Node.js 微服务的优势与挑战

优势:

  • 模块化和可扩展性:每个微服务都可以独立扩展,适应业务增长,使得系统可以更好地应对流量高峰和负载增加的情况。
  • 技术独立性:每个服务可以根据需要使用不同的技术栈和编程语言,可以根据需要选择合适的技术提高开发效率。
  • 开发效率:团队可以并行开发多个微服务,缩短交付时间。
  • 独立部署:每个微服务都是独立部署的,当某个服务进行更新或者修复,只需要重新部署该服务即可。

挑战:

  • 服务间通信复杂度:微服务之间的通信会增加网络延迟和故障传播风险。
  • 分布式系统复杂性:管理和调试分布式微服务系统需要额外的工具和技术。
  • 数据一致性:由于每个微服务可能有自己的数据库,保持数据一致性和事务处理变得困难。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1535561.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

火语言RPA流程组件介绍--单选/复选框

🚩【组件功能】:勾选页面单选/复选框元素 配置预览 配置说明 丨目标元素 支持T或# 默认FLOW输入项 通过自动捕获工具捕获(选择元素工具使用方法)或手动填写网页元素的css,xpath,指定对应网页元素作为操作目标 丨操作 对目标元素进行的勾…

大棚分割数据集,40765对影像,16.9g数据量,0.8米高分二,纯手工标注(arcgis标注)的大规模农业大棚分割数据集。

数据集名称: )“Greenhouse Segmentation Dataset (GSD)” 数据集规模: 包含40,765对用于大棚分割的影像数据,每对影像包括一张原始图像和相应的分割标签图。 数据量: 总数据量约为16.9GB,适合存储在现…

随想笔记1:CSDN写博客经常崩溃,遇到外链图片转存失败怎么办

人如果要学习输入,就必定要表达输出,否则无法达成正向良性循环。 所以技术性博客要常写,平台很多,最好是支持markdown的, 1,支持markdown写博客的在线技术类博客网站: CSDN、博客园、稀土掘金…

搬砖人如何快速找回丢失的数据?盘点4款高效电脑数据恢复工具

各位上班的朋友们,是不是有时候一不小心,就发现自己好不容易存下来的数据找不着了?别慌哈,今天我这个懂点科技的人就来给大家说说几款特别实用的能电脑数据恢复的工具,让你轻轻松松把那些“跑丢了”的数据给找回来&…

Linux文件系统(上)

目录 前言 1.文件接口——用户与文件的“桥梁” 2.C语言中FILE结构与Linux系统调用中fd的关系 3.fd字段如何在文件读写操作中发挥作用 4.fd的分配规则与文件重定向 5.文件缓冲区 6.如何理解Linux中一切皆文件的管理方案 7.涉及代码一览 总结 前言 在Linux中存在“两列”文件…

Python数据分析 Pandas库-初步认识

Python数据分析 Pandas库-初步认识 认识Pandas ​ pandas是一个非常实用的Python工具,我们可以把它想象成一个超级强大的表格处理工具,它比Excel更智能,操作更为简单。pands可以从各种文件格式(CSV、JSON、SQL、Excel&#xff0…

电商数据采集分析全流程分享||电商数据API接口

电商数据监测,能为品牌发展提供参考依据,已经成为了业内共识。依托智能系统,将电商数据转换为有价值的营销情报,只需三步: 数据采集 可采集30多个电商平台数据,采集字段高达40多个,包含标题、价…

Axure设计之表格列冻结(动态面板+中继器)

在Web端产品设计中,复杂的表格展示是常见需求,尤其当表格包含大量列时,如何在有限的屏幕空间内优雅地展示所有信息成为了一个挑战。用户通常需要滚动查看隐藏列,但关键信息列(如ID、操作按钮等)在滚动时保持…

免费AI播客生成:notebooklm可以生成播客的两个发言人谈论的内容,从各种来源如研究论文、文章

参考: https://notebooklm.google.com/ 可以上传文章链接,ai自动生成播客两人对话: 另外notebooklm他本身也是个rag知识库对话,可以直接聊天框对话

vscode 中 python 代码跳转不生效 ctrl加单击不跳转

目录 网友的解决方法: 我的解决方法 vscode 中 python 代码跳转不生效 ctrl加单击不跳转 网友的解决方法: vscode 中 python 代码跳转不生效_vscode python 代码无法跳转-CSDN博客 解决方法 后来发现vs code初次远程连接服务器时,需要…

Redis的AOF持久化、重写机制、RDB持久化、混合持久化

1、AOF持久化 1.1.AOF持久化大致过程 概括:命令追加(append)、文件写入、文件同步(sync) Redis 每执行一条写操作命令,就把该命令以追加的方式写入到一个文件里,然后重启 Redis 的时候&#…

基于51单片机的电饭锅控制系统proteus仿真

地址: https://pan.baidu.com/s/1CGyg6uPhFI0MeaBWwe_HAg 提取码:1234 仿真图: 芯片/模块的特点: AT89C52/AT89C51简介: AT89C52/AT89C51是一款经典的8位单片机,是意法半导体(STMicroelectro…

basectf2024 pwn week2-[Week2] format_string_level0

知识点: 格式化字符串漏洞 因为是用的read,其实应该也可以构造shellcode,但是好像全开了 但是因为这道题,自己读取了flag 所以我们找到flag和buf差多少 发现ptr(存flag)和buf差2 我们去找到buf from pwn import * ioprocess("./pwn") #ioremote("challenge…

本地部署轻量级web开发框架Flask结合内网穿透公网环境访问管理界面

文章目录 1. 安装部署Flask2. 安装Cpolar内网穿透3. 配置Flask的web界面公网访问地址4. 公网远程访问Flask的web界面 本篇文章主要讲解如何在本地安装Flask,以及如何将其web界面发布到公网进行远程访问。 Flask是目前十分流行的web框架,采用Python编程语…

破解信息架构实施的密码:常见挑战与最佳解决方案全指南

信息架构的成功实施是企业数字化转型的关键步骤,但在实际操作中,企业往往会遇到各种复杂的挑战。这些挑战包括 技术整合的难度、数据管理的复杂性、合规性要求的变化 以及 资源限制 等。《信息架构:商业智能&分析与元数据管理参考模型》为…

重生奇迹MU 浅析那些极具魔幻色彩的职业装备

沉稳厚重的剑士职业装备 剑士是所有喜欢近战作战方式的玩家首选的职业。作为来自勇者大陆的最强战士,剑士所穿戴的职业装备都偏向沉稳和厚重,通常全身覆盖重甲。这是因为剑士需要冲向敌人战斗,没有过硬的装备护身,他们很难承受住…

【油猴脚本】00006 案例 Tampermonkey油猴脚本自定义表格列名称,自定义表格表头,自定义表格的thead里的td

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 【油…

多目标优化算法求解LSMOP(Large-Scale Multi-Objective Optimization Problem)测试集,MATLAB代码

LSMOP(Large-Scale Multi-Objective Optimization Problem)测试集是用于评估大规模多目标优化算法性能的一组标准测试问题。这些测试问题通常具有大量的决策变量和目标函数,旨在模拟现实世界中的复杂优化问题。 LSMOP测试集包含多个子问题&am…

C++基础面试题 | C++中的构造函数可以是虚函数吗? C++中的析构函数一定要是虚函数吗?

文章目录 问题一:在C中,构造函数不能是虚函数。问题二:析构函数不一定需要声明为虚函数,但在多态环境下,建议一定将其声明为虚函数。示例虚函数总结 问题一:在C中,构造函数不能是虚函数。 这是…

先框架后历元还是先历元后框架?

最近测绘同行高总发现了一个问题,《CH/T 2014-2016 大地测量控制点坐标转换技术规范》中”5.1.4.1 a) 不同ITRF间框架转换参数的历元归算“中历元不明确,不知是观测历元还是目标历元。他和一些同行用一些数据测试验证后认为观测历元更为贴合实际。 ​编…