首先我们要了解一下服务都有哪些类别
网关,处理请求转发和一些通用的逻辑,例如我们常见的 Nginx;
业务网关,处理业务相关的逻辑,比如一些通用的协议转化、通用的鉴权处理,以及其他统一的业务安全处理等;
运营系统,负责我们日常的运营活动或者运营系统;
业务系统,负责我们核心的业务功能的系统;
中台服务,负责一些通用 App 类的服务,比如配置下发、消息系统及用户反馈系统等;
各类基础层,这些就是比较单一的核心后台服务,例如用户模块,这就需要根据不同业务设计不同的核心底层服务;
数据缓存和数据存储,则是相应的数据类的服务。
业务网关使用Node.js十分合适,因为他是基于缓存来处理业务逻辑的,大部分都是网络 I/O ,并未涉及 CPU 密集型逻辑,这也是 Node.js 的优势,其次异步驱动的方案能够处理更高的并发。根据第 01 讲的内容,Node.js 的代码核心是不阻塞主线程处理,而这类业务网关都是轻 CPU 运算服务。因此在这类场景的技术选型中,可以考虑使用 Node.js 作为服务端语言。
中台服务要求是:通用性必须好;低 CPU 计算;网络 I/O 高或者低都行;并发高或者低都行。
在 Node.js 主线程中,可以快速处理各类业务场景,不会存在阻塞的情况,因此这类场景也适合使用 Node.js 作为服务端语言。
大内存和CPU 密集,这样的场景都不适合使用 Node.js 来提供服务。
此文章为6月Day017学习笔记,内容来源于极客时间《Node.js开发实战》,强烈推荐该课程!