当前位置: 首页 > news >正文

【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.lryc.cn/news/443712.html

相关文章:

  • React项目实战(React后台管理系统、TypeScript+React18)
  • 【专题】2024中国生物医药出海现状与趋势蓝皮书报告合集PDF分享(附原数据表)
  • 【iOS】KVC
  • 【2024年华为杯研究生数学建模竞赛C题】完整论文与代码
  • svn回退到以前历史版本修改并上传
  • fiddler抓包07_抓IOS手机请求
  • Windows系统及Ubuntu系统安装Java
  • uni-data-select 使用 localdata 传入数据出现 不回显 | 下拉显示错误的 解决方法
  • 图解 TCP 四次挥手|深度解析|为什么是四次|为什么要等2MSL
  • DevExpress中文教程:如何将WinForms数据网格连接到ASP. NET Core WebAPI服务?
  • SpringBoot3核心特性-核心原理
  • Linux:RPM软件包管理以及yum软件包仓库
  • pod介绍与配置
  • 【Taro】初识 Taro
  • 【设计模式-备忘录】
  • 【数据结构】排序算法系列——快速排序(附源码+图解)
  • Arthas thread(查看当前JVM的线程堆栈信息)
  • Tomcat_WebApp
  • 代码随想录算法训练营Day10
  • 十个服务器中毒的常见特征及其检测方法
  • LeetCode 每周算法 6(图论、回溯)
  • Selenium元素定位:深入探索与实践
  • 前端开发——(1)使用vercel进行网页开发
  • 故障诊断│GWO-DBN灰狼算法优化深度置信网络故障诊断
  • 【工具】Windows|两款开源桌面窗口管理小工具Deskpins和WindowTop
  • 【Unity杂谈】iOS 18中文字体显示问题的调查
  • 后端-navicat查找语句(单表与多表)
  • 基于springboot的在线视频点播系统
  • 笔记整理—内核!启动!—kernel部分(8)动态编译链接库与BSP文件
  • Cpp类和对象(中续)(5)