讨论一下利用vm热更新
首先说一下情景。服务器有状态(比如网游服务器,服务有玩家的状态数据和游戏逻辑),不能像无状态的http服务器可以杀掉进程,或者利用集群调度更新。
相信用过pomelo做服务器,都用过pomelo-admin这个模块,其中有利用vm的一段代码,原理大致如下
https://gist.github.com/jiangzhuo/fb61ddd9c1bb0cba6b30#file-gistfile1-js
效果大致如下
curl -X GET 'http://localhost:3000'
Hello what!
curl -X POST -H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW" -F "what=hell" 'http://localhost:3000/helloWhat'
curl -X GET 'http://localhost:3000'
Hello hell!
基本上可以达到更改任何传入沙箱的东西的效果
我以前也一直这么使用,还没发现什么太大的问题,想跟大家讨论一下有什么不妥的地方。
3 回复