Any.Run使用Meteor.js的成功经验

本文摘译自How Any.Run Became the Most Popular Malware Sandbox in the World using Meteor.js

Any.Run 是首个提供实时交互式并自定义流程的网络安全检测分析服务,其基于 Meteor.js 构建。

目前有 2 百万公开任务,每个任务有许多恶意软件样本感染指标。

解决 Meteor 的扩展和高负荷

nginx 负载均衡 + pm2 + 多个 meteor 实例 这个没什么问题

后来发现 mongo oplog 性能上不去,导致 CPU 一直 100%. 解决方案是使用 redis-oplog 其原理是禁用 mongo-oplog 而使用 redis 的 pub/sub 特性(redis 支持百万级的是没问题的)。通过修改了 Mongo.Collection 的 insert/update/remove 方法监听数据改动通过 redis 分发消息。 实践证明性能大幅提高,cpu 再没超过 20%。

参见Events for Meteor (+ Redis Oplog, Grapher and GraphQL/Apollo)

依然存在的问题 - websocket 安全

websocket 缺少安全保护,DDP limiter 的限制有限,目前 Galaxy Hosting 将会提供 App Protection 特性。


Total views.

© 2013 - 2020. All rights reserved.

Powered by Hydejack v6.6.1