重金求 nodejs 架构优化方案

这不是重金求子哈~,而是想和大家一起聊聊使用 nodejs 作为商业项目的后端,在架构需要考虑的一些问题。

希望能有人能够给我提供合适的方案,可以不参与代码开发,只需指明方向,预算最多一万元。

项目现状

我们公司总部在深圳,当前营收主要靠线下美术培训,在深圳、北京和郑州都有分店。为了提升线下培训的效率,我们自研了两个小程序、五个web应用和一个后台系统,除了一个用于渲染海报的node服务,所有的接口皆由同一个node后端提供。

前端项目都比较复杂,经过过去半年多时间的迭代,已经趋于完善,具备赋能同行的最低要求,已经发布最低可用版本,为艺培同行提供海报设计、3D展厅、智能抠图、在线PPT课件、图形编程和学生信息管理等工具。

之前只是内部门店的老师使用,用户访问量比较低,对系统的稳定性不高,所以后端一直没有做好架构层面的设计,难以满足线上业务的发展需要。

后端采用的框架是koajs,数据库是 mysql,使用ts的语法编写代码,除了提供增删改查的功能,也提供获取微信手机号、微信消息推送和发射短信等功能,部署在阿里云的服务器(每月50元左右)。

当前存在的问题

虽然我之前也使用过Java、go、php和ruby 开发维护过商业项目,但为了效率,我还是选择了nodejs 作为自己创业项目的后端,按照优先级存在的问题有:

没有使用云数据库

为了节约成本,mysql 数据库是直接安装在云服务器上的,之前也购买过云数据库,配置很简单,把 host 字段改成购买的云数据库即可。

不过最低配,也需要80元一个月,所以我打算日活稳定超过100人以后,再购买替换。

没有 redis 缓存

使用Redis,主要考虑性能和并发。这么多年,一直没有在实际项目中使用过Redis,很多年以前学习过,现在基本忘了,得从头学习,不过也挺简单。

目前主流的 Node.js 的 Redis 驱动包有两个:node-redis 和 ioredis,这两个包都有性能非常高、使用方便的特点。

多数人推荐使用ioredis,不管是在云服务器安装redis 还是购买阿里云的redis,都需要在node项目中安装这个依赖,通过它去连接redis数据库。

购买云redis 最低配置的话,一个月需要30元左右,我的想法是不在云服务器上安装了,只要有用户购买会员了,直接一步到位,购买云redis。

很多业务系统其实用数据库就够了,无脑上缓存/NOSQL可能会带来更多更严重的问题。但是在大并发的情况下,所有的请求直接访问数据库,数据库会出现连接异常。

这个时候,就需要使用Redis做一个缓冲操作,让请求先访问到Redis,而不是直接访问数据库。

没有测试域名

目前只有一个域名:www.bitdance.art, 直接提供给用户使用,其实已经申请了一个新域名:yipeizhuli.com

但一直没有去进行备案,原计划是备案通过后,yipeizhuli.com 提供给外部用户使用,bitdance.art 提供给内部员工使用,提前发现问题,同时也可以用来测试。

升级 https 证书

当前购买的证书是免费的,不能支持子域名的https访问,所以不同的前端项目访问都是通过第一层路径是去区分的,比如:

  • /admin: 为后台系统;
  • /ppt:为在线PPT系统;
  • /3d:为3D画展系统;
  • /design: 为海报设计系统。

通过配置 ngnix 映射到不同的前端资源,如果项目多了,管理起来不方便,前端的架构也收到影响,需要在不同前端项目中加上对应的配置。

除了打包的位置需要加上对应的路径,路由也需要哦~

其他问题

由于时间关系,数据库的备份、异常的监控、数据库各表的外键管理混乱等,就不展开讨论了。

后续的规划

目前日活在50人左右,所有的功能都免费对外开放使用,现在已经签约了一个课程加盟的服务商,导入她150多个课件,将会有一千人左右的老师,高频使用我们的系统查看课件,日活很快就会突破一千。

另外,如果这些中小机构的老师,使用我们的拼团工具和3D展馆进行招生引流的话,服务器一定会扛不住,所以当前最紧要的是先上redis,其次是替换云MySQL数据库。

我们这套系统的品牌叫艺培助理,期望是给艺术培训机构提供招生运营工具和课程,用户量可能会过亿,所以后续后端应该还是得,改成go或Java这些生态比较完善的成熟后端框架。

总结

由于还在创业中,本文简单分享了一下我们存在的问题,因为自己需要更多把精力放在业务开展上,所以希望能有更专业的同学,能够帮忙解决以上提到的一些问题(300~500元一天)。

欢迎大家在评论区讨论,或者加入我们的大厂学习交流群,一起提升全栈架构能力。

对于加入我们学习群的同学,我们会定期邀请一些大厂的同学,分享自己是如何通过改善学历履历或学习某些知识技能进入大厂的成功经验,让大家制定和及时调整自己的职业规划。

我们希望以后能帮一千个同学进入大厂,并帮助一百个大厂同学的晋升或跳槽。

相关推荐
Moon里30 分钟前
【CSS】字体文本
前端·css
knoci1 小时前
【Go】-基于Gin框架的IM通信项目
开发语言·后端·学习·golang·gin
高高要努力4 小时前
SpringBoot日志集成-LogBack
spring boot·后端·logback
Jonathan Star4 小时前
两个圆形 一个z里面一个z外面,z里面的大,颜色不同 html
前端·html
Pandaconda5 小时前
【计算机网络 - 基础问题】每日 3 题(二十七)
开发语言·经验分享·笔记·后端·计算机网络·面试·职场和发展
洛小豆5 小时前
前端开发必备:三种高效定位动态类名元素的 JavaScript 技巧
开发语言·前端·javascript·面试
Pandaconda5 小时前
【计算机网络 - 基础问题】每日 3 题(二十四)
开发语言·经验分享·笔记·后端·计算机网络·面试·职场和发展
水上冰石5 小时前
springboot+neo4j demo
spring boot·后端·neo4j
啵一杯5 小时前
leetcode621. 任务调度器
服务器·前端·数据结构·算法·c#
2401_857297916 小时前
2025校招内推-招联金融
java·前端·算法·金融·求职招聘