博客
关于我
Notadd —— 基于 nest.js 的微服务开发框架
阅读量:795 次
发布时间:2023-02-16

本文共 1414 字,大约阅读时间需要 4 分钟。

Nest.js 开发与 Notadd 微服务架构优化解读

随着 Node.js 社区的持续发展,尽管有 Express、Koa、Egg 等框架的出现,但它们更多地被视为工具包,未能真正解决 JavaScript 作为后端语言的架构问题。Nest.js 的出现填补了这一空白。它采用了 TypeScript 和较为完整的 AOP 思想,在 IO 密集型应用中展现出不俗的表现,成为真正意义上的后端框架。我们的团队从 PHP(Laravel)和 Java(Spring)切换到 Nest.js 后,发现其在开发成本(低于 Go 和 Java)、维护成本(与 Go 和 Java相当)以及硬件成本(略高于 Go)方面形成了独特的权衡。

Notadd 的出现则是在基于 Nest.js 的后端开发基础上,进一步通过最合理的成本解决高可用性和横向扩展等问题——微服务架构。Nest.js 与 Angular 的深度结合,使其成为前后端协同开发的理想选择。Notadd甚至提供了专门的 Angular 前端框架——ng-notadd,进一步降低了开发成本和人员配置难度。

微服务架构的核心要素在 Notadd 中得到了完善实现。从网关层到服务层的每个环节都经过精心设计,确保了系统的高效运行和可维护性。网关层负责限流和权限管理,API 层通过 gRPC 与服务层通信,提供标准化的 API 接口,服务层则通过 TypeORM 与数据库交互,处理事务和队列,提供 gRPC 服务端支持。这种层级划分使得业务逻辑与环境实现完全解耦,开发者可以专注于业务逻辑的实现,而不必过多关注环境部署。

Notadd 微服务体系的另一大特点是其对部署的灵活性。业务层面无需关注环境细节,只需通过 IP 和端口建立 gRPC 连接即可运行。环境层面则支持单机部署(通过 pm2 或 pandora)以及集群部署(通过 docker-compose 或 Kubernetes)。这种架构设计最大限度地降低了环境配置的复杂性,同时支持传统部署和现代化部署方式的无缝切换。

Notadd 在后续版本中计划引入更多实用工具。对于业务开发,会提供统一的开发标准、开箱即用的服务模板和代码生成功能,显著降低团队协作成本。对于环境管理,则将持续集成、环境监测和资源优化作为重点发展方向。

Nest.js 的核心优势体现在以下几个方面:支持单机部署和微服务化、高性能的异步架构能够轻松处理万级并发请求、强大的易维护性通过 TypeScript 提供智能化代码支持、模块化设计使系统可按需扩展。这些特性使得 Nest.js 在复杂项目中的应用更加高效和可靠。

Notadd 微服务体系整体技术选型包括 TypeScript 作为开发语言、Nest.js 作为基础框架、GraphQL 用于 API 接口、TypeORM 用于数据库交互、gRPC 用于微服务通信以及 RxJS 用于 ReactivX 样式开发。这种技术组合不仅保证了系统的高性能和可扩展性,也为开发者提供了丰富的工具支持。

Notadd 项目目前已部署了多个高价值服务,包括用户组织权限系统、内容管理系统、短信服务、Redis 缓存、微信公众平台和微信支付等。这些服务均基于 Nest.js 和 Notadd 微服务架构,形成了完整的后端解决方案。

如果你对这篇文章感兴趣,欢迎关注 Notadd 项目立即体验。

转载地址:http://yljfk.baihongyu.com/

你可能感兴趣的文章
Nmap扫描教程之Nmap基础知识
查看>>
nmap指纹识别要点以及又快又准之方法
查看>>
Nmap渗透测试指南之指纹识别与探测、伺机而动
查看>>
Nmap端口扫描工具Windows安装和命令大全(非常详细)零基础入门到精通,收藏这篇就够了
查看>>
NMAP网络扫描工具的安装与使用
查看>>
NMF(非负矩阵分解)
查看>>
nmon_x86_64_centos7工具如何使用
查看>>
NN&DL4.1 Deep L-layer neural network简介
查看>>
NN&DL4.3 Getting your matrix dimensions right
查看>>
NN&DL4.7 Parameters vs Hyperparameters
查看>>
NN&DL4.8 What does this have to do with the brain?
查看>>
nnU-Net 终极指南
查看>>
No 'Access-Control-Allow-Origin' header is present on the requested resource.
查看>>
NO 157 去掉禅道访问地址中的zentao
查看>>
no available service ‘default‘ found, please make sure registry config corre seata
查看>>
No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
查看>>
no connection could be made because the target machine actively refused it.问题解决
查看>>
No Datastore Session bound to thread, and configuration does not allow creation of non-transactional
查看>>
No fallbackFactory instance of type class com.ruoyi---SpringCloud Alibaba_若依微服务框架改造---工作笔记005
查看>>
No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalanc
查看>>