Nodejs 第七十四章(微服务)

简介: Nodejs 第七十四章(微服务)

什么是微服务?
micro servers

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

单体架构vs微服务架构
单体架构适合小型项目,并发量不高的项目(5-10w),其实也就是所有的功能放在一个项目里面
微服务架构适合大型项目,并发量高的情况,也就是把每一个模块单独拆分成一个小项目这样可以独立部署
微服务的优势
独立部署:每个微服务都可以独立地进行部署。这意味着当需要对某个服务进行更新或修复时,只需重新部署该服务,而不需要重新部署整个应用程序

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

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

有谁在用 nodejs构建微服务?
Netflix
Uber
淘宝
腾讯视频
美团团购
京东订单管理
微服务构建
tips不是必须按照我这个方式构建我只是举个例子 没有固定的实现方式根据自己业务调整

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

需要pnpm支持

npm install pnpm -g
1
目录结构

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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
配置monorepo支持 根目录新建pnpm-workspace.yaml

packages:

  • 'packages/*'
  • 'common
    1
    2
    3
    执行

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

相关文章
|
2月前
|
消息中间件 监控 JavaScript
Node.js中的微服务架构:构建与实践
【4月更文挑战第30天】本文探讨了在Node.js中构建微服务的实践,包括定义服务边界、选择框架(如Express、Koa或NestJS)、设计RESTful API、实现服务间通信(HTTP、gRPC、消息队列)、错误处理、服务发现与负载均衡,以及监控和日志记录。微服务架构能提升应用的可伸缩性、灵活性和可维护性。
|
JavaScript 微服务
《基于 OpenResty 和 Node.js 的个推微服务实践》电子版地址
基于 OpenResty 和 Node.js 的个推微服务实践
96 0
《基于 OpenResty 和 Node.js 的个推微服务实践》电子版地址
|
存储 NoSQL JavaScript
NodeJS 基于 Dapr 构建云原生微服务应用,从 0 到 1 快速上手指南
Dapr 是一个可移植的、事件驱动的运行时,它使任何开发人员能够轻松构建出弹性的、无状态和有状态的应用程序,并可运行在云平台或边缘计算中,它同时也支持多种编程语言和开发框架。Dapr 确保开发人员专注于编写业务逻辑,不必分神解决分布式系统难题,从而显著提高了生产力。Dapr 降低了构建微服务架构类现代云原生应用的门槛。
303 1
NodeJS 基于 Dapr 构建云原生微服务应用,从 0 到 1 快速上手指南
|
弹性计算 应用服务中间件 网络安全
基于ecs搭建node+docker+nginx微服务小型架构
在ecs上使用node创建服务,nginx配置负载均衡,docker进行打包,最终使用docker-compose进行运行
基于ecs搭建node+docker+nginx微服务小型架构
|
JavaScript C++ Docker
Node.js 微服务实践:基于容器的一站式命令行工具链
作者:个推Node.js 开发工程师 之诺 背景与摘要 由于工程数量的快速增长,个推在实践基于 Node.js 的微服务开发的过程中,遇到了如下问题: 每次新建项目都需要安装一次依赖,这些依赖之间基本相似却又有微妙的区别; 每次新建项目都要配置一遍相似的配置(比如 tsconfig、lint 规则等); 本地 Mac 环境与线上 Docker 内的 Linux 环境不一致(尤其是有 C++ 依赖的情况)。
1873 0
|
Web App开发 监控 JavaScript
腾讯开源大规模 Node.js 微服务框架 Tars.js
Tars.js 在腾讯内部经过 5 年多的沉淀与迭代(Node.js@0.10版本即提供支持),广泛运用于腾讯QQ浏览器、腾讯桌面浏览器、腾讯地图、应用宝、腾讯手机管家、互联网+、腾讯医疗、腾讯觅影、保险、彩票等几十个重要业务中,日承担了上百亿流量。
4891 0
|
算法 JavaScript 大数据
如何利用Kubernetes编排实现Node.js程序的微服务化
本文着重介绍了微服务架构的某些细节,微服务其实也适用于Node.js应用程序。本文还介绍了如何利用容器和编排来实现Node.js的微服务化。
2217 0
|
27天前
|
前端开发
windows10 安装node npm 等前端环境 并配置国内源
windows10 安装node npm 等前端环境 并配置国内源
46 3
|
2月前
|
移动开发 JavaScript 前端开发
为了学习vue3,安装nvm进行node的多版本管理
为了学习vue3,安装nvm进行node的多版本管理
88 2
|
2月前
|
资源调度 jenkins 持续交付
jenkins 自动安装nodejs16.16.0版本报错处理
jenkins 自动安装nodejs16.16.0版本报错处理
97 0