Nodejs 第七十四章(微服务)

什么是微服务?

micro servers

微服务和微前端是类似的,微前端就是借鉴了微服务的理念去实现的,那么微服务指的就是,将应用程序拆分成为一系列小型、独立的服务,每个服务都是专注于执行特定的业务,比如文章的服务就执行,文章的逻辑,用户的服务,就执行用户的逻辑,这些服务可以独立开发,测试,部署以及扩展,并且可以通讯。

单体架构vs微服务架构

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

直观图 左侧单体架构 右侧微服务架构

在这里插入图片描述

架构实现

在这里插入图片描述

微服务的优势

  1. 独立部署:每个微服务都可以独立地进行部署。这意味着当需要对某个服务进行更新或修复时,只需重新部署该服务,而不需要重新部署整个应用程序

  2. 技术多样性:微服务架构允许不同的微服务使用不同的技术栈和编程语言。这样可以根据具体需求选择最适合的技术,提高开发效率和灵活性

  3. 弹性扩展:由于每个微服务都是独立的,可以根据实际需求对每个服务进行独立的扩展。这使得系统可以更好地应对流量高峰和负载增加的情况,提高了系统的可伸缩性和可用性

有谁在用 nodejs构建微服务?

  1. Netflix
  2. Uber
  3. 淘宝
  4. 腾讯视频
  5. 美团团购
  6. 京东订单管理

微服务构建

tips不是必须按照我这个方式构建我只是举个例子 没有固定的实现方式根据自己业务调整

目前流行monorepo架构 也就是多项目使用一个仓库

需要pnpm支持

npm install pnpm -g

目录结构

app/
├── common/
│   └── index.ts
├── packages/
│   ├── gateway/     //其实这就是一个单独的项目
│   │   ├── index.ts
│   │   └── package.json
│   ├── user/       //其实这就是一个单独的项目
│   │   ├── index.ts
│   │   └── package.json  
│   └── post/      //其实这就是一个单独的项目
│       ├── index.ts
│       └── package.json
├── tsconfig.json
├── pnpm-workspace.yaml
├── package.json

配置monorepo支持 根目录新建pnpm-workspace.yaml

packages:- 'packages/*'- 'common

执行

pnpm install #就会自动安装common目录里面的依赖 和packages目录下面的所有的依赖都会安装

微服务多个服务之间还会进行点对点的通讯这是重中之重下一章会讲微服务之间的通讯核心知识

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第N4周:中文文本分类

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 一、预备知识 中文文本分类和英文文本分类都是文本分类,为什么要单独拎出来个中文文本分类呢? 在自然语言处理(NLP&#x…

Tomcat相关概述和部署

目录 一、Tomcat知识 1.Tomcat概述 2.Tomcat组件构成 3.Tomcat 功能组件结构 4.Tomcat的请求过程 二、tomcat服务部署 1.老样子准备工作——关闭防火墙和selinux,防止其对安装过程的干扰 2.将准备好的软件包拖入/opt目录下,进行安装JDK 3.设置J…

嵌入式学习记录6.5(内存分配/构造函数/析构函数)

目录 目录 一.c动态内存分配回收 1.1分配 1.2回收 1.3new、delete和malloc、free之间的区别(重点) 二.构造函数 2.1功能,格式 2.2示例 三.析构函数 3.1功能,格式 3.2特点 3.3示例 四.思维导图/练习 4.1思维导图 4.2练习 一.c动态内存分配回…

无需复杂步骤,Win11用户轻松开启旧版文件资源管理器!

在Win11电脑操作中,用户可以使用到新版的文件资源管理器,但总是有各种错误、卡顿等问题的出现,所以很多用户都不喜欢新版资源管理器。接下来小编给大家介绍一个简单的方法,帮助Win11用户快速开启旧版文件资源管理器。 具体操作如下…

【RISC-V】站在巨人的肩膀上——看开源芯片、软件生态、与先进计算/人工智能/安全的结合

目录 会议议程专题二:RISC-V与先进计算基于RISC-V的后量子密码芯片设计,刘冬生,华中科技大学存算一体集成芯片,刘琦,复旦大学面向端侧大模型计算的RISC-V矩阵扩展架构,复旦大学,韩 军 专题五&am…

开源基于Rust编写的Web服务器

基于 RUST 的 WEB 资源服务器 Github 地址 LTPP-GIT 地址 官方文档 该项目于 2024 年 5 月 1 日开始开发 预期功能 功能支持情况当前情况多线程支持是是服务支持配置化是是防盗链支持是是gzip 支持是是反向代理支持是是自定义状态码对应资源文件是是日志支持是是负载均衡支…

easyexcel模板填充列表

引入依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.6</version></dependency>编写模板 编写代码 public class FillData {private String name;private Double number;pu…

如何解决 Zabbix模板同步超时:解决运维技术领域的BugFailed to sync Zabbix template due to timeout

如何解决 Zabbix模板同步超时&#xff1a;解决运维技术领域的BugFailed to sync Zabbix template due to timeout 原创作者&#xff1a; 猫头虎 作者微信号&#xff1a; Libin9iOak 作者公众号&#xff1a; 猫头虎技术团队 更新日期&#xff1a; 2024年6月6日 博主猫头虎…

LabVIEW源程序安全性保护综合方案

LabVIEW源程序安全性保护综合方案 一、硬件加密保护方案 选择和安装硬件设备 选择加密狗和TPM设备&#xff1a;选择Sentinel HASP加密狗和支持TPM&#xff08;可信平台模块&#xff09;的计算机主板。 安装驱动和开发工具&#xff1a;安装Sentinel HASP加密狗的驱动程序和开发…

Java物业管理系统+数据库应用程序开发[JavaSE+JDBC+idea控制台+MySQL]

背景&#xff1a; 使用JavaSEJDBCMySQL技术实现一个物业管理系统&#xff0c;具体要求如下 物业管理系统需求&#xff1a; 需求分析 1.1用户需求分析 在进入系统之前&#xff0c;要进行身份确认&#xff0c;只有用户名和用户密码都相符的用户方可进入本系统&#xff0c;为…

SASAM软件架构静态分析法-系统架构师(六)

1、体系结构权衡分析法&#xff08;Architecture Tradeoff Analysis Method ATAM&#xff09;包含四个主要活动领域&#xff0c;分别是 场景和需求的收集、体系结构视图和场景的实现、&#xff08;&#xff09;、折中。基于场景的架构分析方法&#xff08;Scenarios-based Arch…

大归纳!!教你使用<string.h>的字符函数与字符串函数!!☑

这篇博客为你归纳了所有的字符函数和最常用的字符串函数&#xff0c;以及对应的模拟实现&#xff01;&#xff01;你可以直接循着目录跳到你需要的段落哦&#xff01;&#xff01;&#x1f60d; 目录 字符函数 字符分类 字符判断函数 islower——判断小写字母 isupper——…

JVM学习-Jprofiler

JProfiler 基本概述 特点 使用方便&#xff0c;界面操作友好对被分析的应用影响小(提供模板)CPU&#xff0c;Tread&#xff0c;Memory分析功能尤其强大支持对jdbc,noSql,jsp,servlet,socket进行分析支持多种模式(离线、在线)的分析支持监控本地、远程JVM跨平台&#xff0c;拥…

纯血鸿蒙开发教程:如何实现运动饮食卡片效果

开发背景 人们对健康的要求越来越高&#xff0c;从单纯的健康饮食到健康运动&#xff0c;再到两者的结合。但是&#xff0c;饮食和运动之间的平衡一般人很难掌握&#xff0c;而我们这款 APP 将饮食、运动、以及自身身体状况&#xff08;如体脂、体重、内脂等&#xff09;有机结…

linux上VirtualBox使用

前言 最近想把唯一的windows系统装成linux&#xff0c; 但是确实存在一些特殊软件无法舍弃&#xff0c;所有装完linux需要用虚拟机装个windows 上来使用特定的一些软件&#xff08;不想用wine了&#xff09;。 还有对一些特定usb设备的透传&#xff0c;这样才能保证在虚拟机中…

【Linux】Linux工具——gdb

1. gdb 概述 GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许&#xff0c;各位比较喜欢那种图形界面方式的&#xff0c;像VC、BCB等IDE的调试&#xff0c;但如果你是在 UNIX平台下做软件&#xff0c;你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能…

和平饭店短视频:成都科成博通文化传媒公司

和平饭店短视频&#xff1a;历史的沉淀与现代的演绎 随着短视频平台的兴起&#xff0c;越来越多的人开始通过镜头记录生活、分享故事。在众多短视频中&#xff0c;以“和平饭店”为主题的短视频独树一帜&#xff0c;以其独特的魅力吸引了大量观众的目光。成都科成博通文化传媒…

【常见报错】影刀小窗口消失-作者:【小可耐教你学影刀RPA】

现象描述&#xff1a; 影刀能够正常登录并运行&#xff0c;但是从常规模式切换到调度模式后能出现启动页&#xff0c;然后程序就退出了&#xff0c;查看影刀日志和事件查看器中的日志都没有任何异常消息 问题原因&#xff1a; 正常切换调度后会在窗口右下角出现一个机器人的小…

QT+FFmpeg+Windows开发环境搭建(加薪点)

01、Windows 环境搭建 FFMPEG官网:http://ffmpeg.org/ 02、下载4.2.1版本源码 源码:https://ffmpeg.org/releases/ffmpeg-4.2.1.tar.bz2 03、下载4.2.1编译好的文件 下载已经编译好的FFMPEG)(迅雷下载很快) 网址:https://ffmpeg.zeranoe.com/builds/ 32位下载地址:(迅雷…

特征工程及python实现

一、特征构建 概述 从原始数据中构建新的特征&#xff0c;一般需要根据业务分析&#xff0c;生成能更好体现业务特性的新特征&#xff0c;这些新特征要与目标关系紧密&#xff0c;能提升模型表现或更好地解释模型。 方法 时间周期&#xff1a;不同的时间切片长度&#xff0…