今天下午参加公司技术分享,对其中一个技术非常感兴趣,甚至很兴奋,之前的一些困扰,似乎可以得到解决。
程序是万能的,但是程序都是有bug的,都有顶不住的时候,我们除了修炼自己的内功,防止出错外,实际上更想让错误,问题来的更快些,记得疯狂英语李阳就是这种方法,让错误来的更快些,你就离成功更近些。回到我们的程序,我们都希望做真实的压力测试,可是人为造的的数据,往往不够真实,或者测试方案,测试方法本身就有问题,最后限制了我们的测试结论的正确性,我们多希望直接上线测试,可这又是不可能的,线上出问题,我们承担不了这个责任,于是乎TCPCOPY横空出世了,竟然copy了线上的流量,完全真实的,是不是觉得世界更美好了。
下面是介绍:
tcpcopy是一种应用请求复制(基于tcp的packets)工具,其应用领域较广,我们曾经应用于网易的广告投放系统,urs系统,nginx hmux协议开发等系统,避免了上线带来的很多问题。
总体说来,tcpcopy主要有如下功能:
1)分布式压力测试工具,利用在线数据,可以测试系统能够承受的压力大小(远比ab压力测试工具真实地多),也可以提前发现一些bug
2)对于后端的短连接,请求丢失率非常低(1/10万),可以应用于热备份
3)普通上线测试,可以发现新系统是否稳定,提前发现上线过程中会出现的诸多问题,让开发者有信心上线
4)对比试验,同样请求,针对不同或不同版本程序,可以做性能对比等试验
5)利用多种手段,构造无限在线压力,满足中小网站压力测试要求 6)实战演习(架构师必备)
tcpcopy可以用于实时和离线回放领域,并且tcpcopy支持mysql协议的复制,开源一年以来,功能上越来越完善。
如果你对上线没有信心,如果你的单元测试不够充分,如果你对新系统不够有把握,如果你对未来的请求压力无法预测,tcpcopy可以帮助你解决上述难题。