很多是 node 做不好或者就直接不做不了的 CPU 密集的任务,比如: 直播视频流动态编码类型多马率、多编码的转码,要求实时,且 IO 不是瓶颈。 实时模型推理,实时排序等,主要是计算,尤其是涉及 CV 和 NLP,还有图计算的。 游戏服务器,比如帧同步模块,无锁队列(游戏的队列,比如组队、进服务器等)模块,必须在给定时间内算完,且数据一般都在同一个进程里,只有少部分数据会异步落盘。 以及数据的复杂处理等,这个看业务了,比如对大量的 data point 用特定的算法做 sampling 。
bashbot
2020-08-29 15:08:21 +08:00
一般遇到 CPU 密集型场景优先考虑用 C 实现,而且不会要求实时。要求实时要么堆硬件要么并发稳定,不然来个高并发波动 CPU 资源超限直接就任务超时了。 之前做过三个计算任务场景,一个是 CAD 文件解析绘图,一个是视频转码,还有个自然语言处理,前两个是用消息队列提交到任务中心排队的,最后一个控制并发量多买机器。 架构上设计好了,用不用 node.js 其实不重要,任务处理用 nodejs,java,python,C++随便什么写都可以,经常混合的。刚开始规模不大的话性能差个一两倍直接堆硬件就完了,后期有规模了才会优化。
wwqgtxx
2020-08-29 15:43:08 +08:00
@noe132 请问一下贵公司使用的是哪个垃圾 python 的数据库驱动,做数据库操作居然不会释放 gil 锁