Tag: docker swarm

NodeJS远程debugging与Docker

已经过了两天了,我仍然无法摆脱这个应该变成简单的事情! 我要: 创build一个nodejs docker swarm服务并在debugging模式下运行nodejs代码 将debugging器端口公开给主机 能够从主机连接到debugging器 重现问题的最简单的步骤是: root@host docker service create –name dbg-nodejs –publish 4444:4444 node sleep 10d root@host containerID=$(docker container ls –filter name=dbg-nodejs | awk 'FNR == 2 {print $1}') ### find the containerId root@host docker exec -d $containerID /bin/bash -c "(echo \"console.log('\n\n\nHello from NodeJS\n\n\n');\" > /usr/test-dbg.js) && node –inspect-brk=4444 /usr/test-dbg.js" root@host docker […]

如何扩展一个NodeJS有状态的应用程序

我目前正在开发一个基于networking的MMORPG游戏,并且想要build立一个基于Docker和DigitalOcean飞沫的自动缩放策略。 但是,我想知道如何做到这一点: 我的游戏服务器必须在不同的Docker容器之间进行拆分, 但是每个游戏服务器实例都应该像只有一个巨大的游戏服务器那样工作。 这意味着每个修改(angular色移动)都应该在每个其他游戏服务器上进行镜像。 我试图让这个工作(至less在概念上),但无法find一种方法来正确同步我的所有实例。 我应该使用只有广播事件的主人还是有其他select? 我想知道关于我的MySQL数据库的同样的事情:因为每个游戏服务器都必须从db读取/写入数据库,那么随着游戏变得越来越大,我怎样才能使它正确地扩展? 我能想到的最好的解决scheme是将数据库保存在一台function非常强大的服务器上。 我明白,如果所有的游戏服务器都不需要“分享”他们的状态,这可能很容易,但这主要是为了让我可以快速扩展,以防万一突然激增的活动。 (将有不同的“全球”游戏服务器,如A,B,C …但是这些全球游戏服务器中的每一个应该在幕后由运行“真实”游戏服务器的1-Xdocker容器组成, “全球”游戏服务器只是一个概念)