绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
Notadd —— 基于 nest.js 的微服务开发框架
2020-07-02 15:41:07

前言

随着 node.js 社区的不断发展,虽然有 express 、koa 、egg .... 这样的框架,或者更应该称之为工具包,无一解决 js 作为一个后端语言的问题 —— 架构。

Nest.js 的出现解决了这些问题,它使用了 *cript ,较为完整的 AOP 思想,同时在 IO 密集型应用上有着不俗的表现,是真正意义上的后端框架,我们团队主要成员从 PHP(Laravel) 、 Java (spring) 切换到了 Nest.js 。要说它有什么好的话,是在 开发成本(低于 go、Java),维护成本(低于go,跟 java 看齐),硬件成本(略高于 go) 三者之间的一个新的权衡。

Notadd 的出现,是在用 Nest.js 解决后端问题的基础上,用合理的成本来解决高可用、横向拓展等问题 —— 微服务。

Nest 的全栈开发

Nest 可以说跟 Angular 是绝配了,亮点在于 Nest 在很多方面吸取了 Angular 的特性,并且许多装饰器名字也一致,开发人员可以轻松在 Nest 和 Angular 之间切换,当然,你还需要了解 CSS 和 typeorm 。这大大降低了沟通成本和开发成本,使得人员配置变得更加灵活。

Notadd 也提供了相应 Angular 的前端框架 —— ng-notadd 。

微服务的一点说明


网关层: 主要处理限流,以及无关业务的权限。 【用户只能请求网关】
API 层: 通过 Grpc 请求服务层拿到数据,提供前端所需的 API ,但不能操作数据库。
服务层: 通过 Typeorm 连接数据库,CURD 以及处理事务、队列,同时提供 Grpc 的服务端,以供 API 层请求。

Notadd 微服务总共可以分为两方面来看,一方面是业务,业务无需关注环境层面问题,根据 IP 和端口建立 Grpc 的连接即可。一方面是环境,环境可以是单机 利用pm2 或者 pandora 等工具进行单机部署,也可以通过docker-compose 进行单机或者多机部署,更可以通过 k8s 进行集群部署。

也就是说业务并不需要关注环境的具体实现,而环境也不需要知道业务的具体实现。你可以按照传统方式部署,也可以按 k8s 集群或者你喜欢的方式部署。
你可以在开发环境像往常一样开发,而在线上将开发的成品进行单机或者集群部署。

Notadd 的微服务

Notadd 后续会提供相应的 cli 工具:

对于业务:

  • 提供相应的开发标准,减少团队沟通成本
  • 提供开箱即用的服务应用
  • 提供一键生成代码

对于环境:

  • 提供快速部署
  • 提供持续集成 (开发中)
  • 提供环境监测和管理(开发中)

特性

【微服务】 支持单机部署和微服务化 【高性能】 异步高性能应用,单机并发轻松上万 【易维护】 使用 *cript 开发,智能化的代码提示和编译时的代码检查机制 【可插拔】 模块化开发系统,依据业务需求,选择合适的模块,进行 API 层的搭建

相关技术

  • *cript 【开发语言】
  • Nest.js 【基础框架】
  • GraphQL 【API 接口】
  • TypeORM 【数据库 ORM】
  • Grpc 【微服务通信】
  • Rxjs 【JS 的 ReactiveX 库】

项目地址

github.com/notadd/notad (欢迎star)

相关服务地址: github.com/notadd (用户组织权限系统、CMS、短信、Redis 缓存、微信公众平台、微信支付... )

分享好友

分享这个小栈给你的朋友们,一起进步吧。

微服务专区
创建时间:2020-07-01 15:22:43
微服务是一种架构风格,是以开发一组小型服务的方式来作为一个独立的应用系统,每个服务都运行在自已的进程中,服务之间采用轻量级的HTTP通信机制 ( 通常是采用HTTP的RESTful API )进行通信。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • markriver
    专家
戳我,来吐槽~