模拟分布式的方法

曾经有个问题一直在困惑我,分布式程序如何在宿舍调试和测试。扩容缩容是否正确,灾害发生时容灾能不能自动启动。当然对现阶段的我来说最重要的还是功能本身的验证。

这两天百步梯那群怪人又在群里讨论后台开发的一些问题,因为大牛多讨论就很吸引人很有意思,忽然就有好多点子想写一些好玩的程序,可怎么用一台机器模拟千百台机器来开发和测试分布式程序呢?

我会用zookeeper,但不愿意用java阵营的利器,想先用python造轮子实现一些分布式的服务管理和同步原语做第一个有意思的程序,可是写了怎么测试呢?
然后我刚刚才忽然想到,用docker啊!
(为什么以前从没想到过…浪费那么多好时光)

写好程序,创建docker镜像,用脚本瞬间启动100个容器,用localhost做功能和id的标识,就成功模拟分布式环境了。扩容缩容就是增加或删除容器,然后验证能否在线增加删除节点;灾害模拟就是忽然关掉一些容器就好啦!

自己实现一个mini zookeeper肯定很涨姿势啊,而且还能一步步在(伪)多机器上做各种测试!
想到这,竟兴奋的有点睡不着。

找到一个有趣的问题的答案总是能让我的血液沸腾,让我兴奋地颤栗不已,让我睡不着觉。想想以后工作竟然可以是自己那么喜欢的事情,我真是蛮幸福的

 

大神说可以了解一下Docker Swarm,kubernetes做部署,另外etcd就是zookeeper在docker世界中的对应。

发表评论

电子邮件地址不会被公开。 必填项已用*标注