tcpcopy新架构具体复杂应用实例(针对tcpcopy0.9系列版本)

tcpcopy:在线请求复制工具,也是tcp流重播工具,适用于真实测试,性能测试,稳定性测试,压力测试,负载测试,冒烟测试等 立即下载

注意事项:

这里用的是0.9系列,而非1.0系列

在线系统介绍:

假设我们有在线机器A,在线机器B,在线机器C三台服务器,其中在线机器A,上面运行nginx(80端口)的业务系统,供最终用户访问,同时nginx还会内网访问在线机器B上面的adserver(端口11311)业务,在线机器C运行着伪在线业务msyql(利用sysbench模拟的)

测试系统:

我们有测试服务器a,b。
其中a上面运行如下几个系统:
1)nginx业务系统(端口为18080)
2)adserver业务(进程为asyn_server,端口为11811)
3)mysql(3306端口)

这里nginx会访问asyn_server进程,mysql是独立的应用。



目的:

我们需要把在线系统的nginx应用和asyn_server应用导入到测试机器a中,同时还要复制在线机器C中的mysql请求到测试机器a中去。


如何在测试机器a中设置路由:

对于测试机器b,则是运行intercept的地方,用来捕获测试机器a中的mysql的响应,nginx的响应和asyn_server的部分响应(因为测试机器a中的nginx也会访问asyn_server,这部分响应不应该路由到测试机器b)。

因此测试机器a上面的应用有外网应用(nginx)和内网应用(asyn_server和mysql应用),该如何设置路由呢?(这里路由设置是关键)


1)设置nginx的响应路由:

测试机器a中的nginx走外网网卡,我们设置如下:
route del default gw 原先的网关ip地址
route add default gw 机器b的外网ip地址
这样设置后,如果外网响应最终没有匹配路由的话,就会走默认网关,也即流向到测试机器b中去(注意:来自同一网段的请求,如果采用外网地址访问,其响应不会走默认路由)。

这样nginx的响应路由就设置好了。


2)设置asyn_server的响应路由:

由于在线的asyn_server是被nginx访问的,我们假设只有在线机器A上面的nginx来访问,而且是采用内网地址(非localhost)来访问asyn_server的。
我们设置路由如下:
route add -host 在线机器A的内网ip地址 gw 测试机器b的内网ip地址
这样复制的asyn_server的请求到了测试机器a后,其响应就会流向到测试机器b中去,但测试机器a中的nginx访问asyn_server的请求,会返回给nginx。


3)设置mysql的响应路由:

由于我们测试机器a上面的mysql,会DNS查询外网,所以必须找出访问的ip地址,我们假设要访问的外网ip地址为机器D的ip外网地址,需要开通这个ip地址的权限:
route add -host   机器D的ip外网地址 gw 原先的网关ip地址
这样设置好了以后,mysql请求复制在我这儿才能顺序进行
mysql请求本身访问采用了内网方式,而mysql的请求客户端ip地址为在线机器C,那么设置路由如下:
route add -host 在线机器C的内网ip地址 gw 测试机器b的内网ip地址

运行:

测试机器a的路由设置好以后,启动nginx应用,asyn_server和mysql应用,就等请求复制过来了。
我们在测试机器b中启动多个intercept实例,分别捕获nginx的响应,asyn_server的响应和mysql的响应

捕获mysql响应( ./configure --enable-advanced --enable-pcap--enable-mysql)
sudo ./intercept -F 'tcp and src port 3306' -p 36525 -i eth0 -d           

捕获nginx响应 (./configure --enable-advanced --enable-pcap)
sudo ./intercept -F 'tcp and src port 18080' -p 36526 -i eth1 -d        

捕获asyn_server响应(./configure --enable-advanced --enable-pcap)

sudo ./intercept -F 'tcp and src port 11811' -i eth0 -d 


当然intercept也可以只运行一个实例(-F参数设置过滤好响应包的捕获条件),没有必要一个应用一个intercept实例


我们在在线机器A复制nginx请求(./configure --enable-advanced --enable-pcap ):

sudo ./tcpcopy -x 80-测试机器a的外网ip地址:18080 -p 36526 -s 测试机器b的内网ip地址 -i eth0 -d
由于在线nginx前面有lvs,这里请求走的内网网卡

我们在线机器B复制asyn_server的请求(./configure --enable-advanced --enable-pcap ):
sudo ./tcpcopy -x 11311-测试机器a的内网ip地址:11811 -s 测试机器b的内网ip地址 -i eth0 -d
从eth0捕获内网请求

我们在在线机器C中复制mysql请求(./configure --enable-advanced --enable-pcap --enable-mysql):
sudo ./tcpcopy -x 3306-测试机器a的内网ip地址:3306 -u root@密码 -s 测试机器b的内网ip地址 -p 36525 -i lo -d
从lo捕获mysql请求


效果演示

复制以后,我们截图如下:

在线机器A,复制nginx请求,运行tcpcopy


在线机器B,复制asyn_server请求



在线机器C,复制mysql请求



测试机器b上面的intercept


测试机器a上面的各种业务:



MounRiver Studio实战:像管理个人项目一样整理沁恒MCU的EVT例程(附文件结构图) 本文详细介绍了如何使用MounRiver Studio重构沁恒MCU的EVT例程,实现工程化管理。通过分析官方EVT设计的局限性,提出标准化的目录结构和迁移步骤,帮助开发者提升代码可维护性和团队协作效率。文章还提供了MounRiver Studio的关键配置参数和常见问题排查指南,适用于沁恒MCU开发者。 阅读详情

相关推荐

从Canny到深度学习:边缘检测指标进化史(含ODS/OIS/AP的数学推导)

本文系统梳理了边缘检测评估指标的演进历程,从经典的Canny算子到深度学习时代,重点解析了ODS、OIS和AP三大核心指标的设计哲学与数学推导。文章深入探讨了基于PR曲线的评估体系,揭示了不同指标(如ODS与OIS)在阈值优化上的差异,并分析了AP指标在边缘检测任务中的优势与局限,为算法研究和模型评估提供了实用指南。

b9c0d的博客 199

这就是Tcpcopy

TCPCOPY 1、 TCPCOPY简介 1.1、 什么是Tcpcopy Tcpcopy是一个分布式压力测试工具,可以将线上流量拷贝到测试机器,实时模拟线上环境,达到在程序不上线的情况下实时承担线上流量的效果,尽早发现bug增加上线信心。 1.2、 Tcpcopy的工作原理 TCPCopy是一种请求复制(复制基于 TCP 的 packets)工具 ,通过复制在线数据包,修改 TCP/IP 头部信息,发送给测试服务器,达到欺骗测试服务器的TCP 程序的目的,从而为欺骗上层应用打下坚实基础。 1.3、 Tcpc

awerft的博客 4755

Excel中如何快速地将成绩按比例来划分为等级?

问题介绍: 记录说明:班级里共有40个人,按最终总平均成绩从高到低划分等级,A等级30%,B等级50%,C等级20%。 部分成绩如下表所示: Excel中相关函数介绍: IF函数 IF函数有三个参数,语法如下: =IF(条件判断, 结果为真返回值, 结果为假返回值) 第一参数是条件判断,比如说“A1=">37”这种,判断TRUE或FALSE。如果判断是TRUE(结果为真)那么IF函数返回值是第二参数,否则(结果为假)返回第三参数。 如果省略了第三参数,则当结果为假时,会返回FALSE。 如果公式

Wendy的博客 1万+

TCPCopy原理浅析

TCPCopy是一款十分优秀的开源项目,但因为笔者能力有限,本文只介绍了TCPCopy的核心技术原理,很多细节并未涉及。不过还是希望通过本文的介绍,能够对TCPCopy和流量回放技术感兴趣的同学有所启发!

weixin_49676783的博客 2332

土壤水动力学_前 言

Van Genuchten (V-G) 模型是土壤水分特征曲线中最常用的模型之一。它通过数学方程描述了土壤基质吸力与体积含水量之间的关系,被广泛应用于土壤水分运移、土壤盐渍化、边坡稳定性等研究领域。V-G模型是描述土壤水分特征曲线的重要工具,但它并不是完美的。在实际应用中,需要根据土壤类型、试验条件等因素选择合适的模型。土壤基质吸力是土壤水分学中的一个重要概念,它对土壤水分的保持、植物的生长以及土壤的工程性质都有重要影响。

weixin_44259522的博客 5327

机器学习之性能度量

废话不说,本文分为两个部分: 第一部分,我对周志华教授《机器学习》这本书中性能度量知识点中疑难点的学习感悟;第二部分,我感觉该书2.3节 性能度量 中最后部分的代价曲线表述有误,苦于没找到联系教授的正确方式,故希望与广大网友一起探讨。

hustqb的博客 4628

如何用遗传算法优化ta-lib-python指标组合:提升交易策略收益的终极指南

ta-lib-python是一个强大的Python技术分析库,它为交易者和数据分析师提供了丰富的技术指标计算功能。本文将介绍如何利用遗传算法对ta-lib-python中的指标组合进行优化,帮助你构建更有效的交易策略,实现更高的投资回报。 ## 为什么需要优化ta-lib-python指标组合? 在金融交易中,单一的技术指标往往难以准确预测市场走势。通过将多个指标组合使用,可以综合不同维度的市

gitblog_00019的博客 1078

大模型和任务型对话系统如何结合

三种方法都是基于prompt1.prompt中定义大量可分类的domain标签,每种标签含有的样例。走对话系统nlu常规步骤,domain分类,意图分类,slot提取等。缺点:需要很复杂的prompt,写的未必完善。需要多次调用llm2.prompt中定义每种query下可以调用的functioncall。3.也是基于prompt,可以管理对话主题,实现更丰富的话题流转。面向某个具体领域,没有细分的domain类别。

qq_29837229的博客 2450

Tcpcopy简单用法

TCPCopy是基于网络栈,TCP协议的流量复制,常用的场景是把线上流量复制到测试环境,用来排查线下不容易重现的问题,或者对测试环境做压力测试

峰迹的博客 595

【AFAC2026金融智能-赛题二】2亿像素的面条图,我切了1000刀拼回完美Markdown

摘要: AFAC2026金融智能创新大赛的「复杂金融文档还原挑战」任务是将高分辨率金融文档截图转换为结构化Markdown文本。面对2亿像素的“面条图”和严格的计算限制(禁用主流大模型,仅允许调用FinixDoc-VL API且模型需小于10M),作者提出四层流水线解决方案: 图像预处理:通过文本行投影检测在行间隙处智能切图,避免截断文字; API调度:5路并发轮询请求,结合内容哈希缓存与指数退避重试机制优化调用效率; 后处理:采用最长公共子串匹配去除文本重叠,并设计表格对齐算法修复跨块表格; 结果输出:按

169

A2A 协议详解:Agent Card 的设计与实现

Agent Card 是 Agent2Agent (A2A) 协议中实现智能体发现与互操作性的核心组件。本文将深入剖析 Agent Card 的设计理念、关键字段及其在智能体生态系统中的作用。我们将通过详细的 JSON Schema 解析和 Python SDK 示例,帮助您理解如何精确地定义和发布智能体能力,为构建可发现、可协作的 AI 智能体奠定基础。当您使用a2a.Agent类初始化一个智能体时,SDK 会根据您提供的参数(nameversion等)自动构建内部的 Agent Card 表示。

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 1476

TCPcopy-TCP流重播工具

1.什么是tcpcopy TCPCopy是一种TCP流重放工具,用于支持Internet服务器应用程序的真实测试。 tcp实时流对于Internet服务器应用程序的测试很重要,但是由于线上环境过于复杂,因此很难对其进行模拟。为了支持对Internet服务器应用程序进行更符合生产环境的测试,有了实时流复制工具TCPCopy,该工具可以生成与生产工作负荷类似的测试流。目前,TCPCopy在中国公司被广泛使用。除了占用额外的CPU,内存和带宽外,TCPCopy对生产系统几乎没有影响。在请求多样性,网络延迟和资

橙汁Iter的博客 1375

MATLAB之把多个小cell拼成一个数组

问题描述 现有一个cell向量 L (90000,1),每个元素都是由一个(100X9)的double数组组成的.如图. 其中, 每个cell元素都是一个单独的数据, 我们要把它转换成(90000, 19, 100)的三维数组. cell2mat, 但是所有的数据会堆叠起来 L2=cell2mat(L); % (90000, 19) reshape, 变成三维数组 reshape的原理是从上到下, 从左往右拆开重组. 目前只有19这一维数据与要求一致, 那就以这个为突破口. L2=L2'; %

落日之城 9249

TCPCopy的安装和使用

官网地址 https://code.google.com/p/tcpcopy/  里面有包的下载地址、文档 和常见问题。 TCPCopy 有传统架构和新架构,新架构比较复杂,一般情况下传统架构就可以了。 TCPCopy分为TCPCopy client和TCPCopy server,其中TCPCopy client运行在在线服务器上面,用来捕获在线请求数据包;TCPCopy server

marken 1万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

2、tcpcopy使用说明--各个参数含义

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/zhang_yanan/article/details/25708349 1简介 XCopy是由网易主导,多家公司成员1参与开发的具有在线server流量复制功能的一系列开源软件的总称,目的是复制在线server流量到测试系统中去,并引入...

mao_xiaoxi的博客 1384

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Tcpcopy简介与实战

Tcpcopy简介 TCPCopy是一种请求复制(所有基于tcp的packets)工具 ,其功能是复制在线数据包,修改TCP/IP头部信息,发送给测试服务器,达到欺骗测试服务器的TCP 程序的目的,从而为欺骗上层应用打下坚实基础。 TCPCopy七大功能 1)分布式压力测试工具,利用在线数据,可以测试系统能够承受的压力大小(远比ab压力测试工具真实地多),也可以提前发现一些b

寒风问雪的专栏 853

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

tcpcopy

TCPCopy是一种请求复制(所有基于tcp的packets)工具 ,其功能是复制在线数据包,修改TCP/IP头部信息,发送给测试服务器,达到欺骗测试服务器的TCP 程序的目的,从而为欺骗上层应用打下坚实基础。 TCPCopy七大功能 1)分布式压力测试工具,利用在线数据,可以测试系统能够承受的压力大小(远比ab压力测试工具真实地多),也可以提前发现一些bug 2)普通上线测试,可以发现

记录,总结,成长 736

mysql性能测试方法主要介绍下tcpcopy

mysql常见性能测试方式: 1 sysbench 这种的方式是能做基准测试,要先生成一些表,针对这些表操作,脚本设计的表都比较简单 2tpcc-mysql 这个会生成一个仓库的oltp系统,然后进行测试,比sysbench生成的表要复杂,也更加符合线上的场景 3tcpcopy 此种方式直接拷贝线上的流量,使用真实的流量在测试库上运行,可以进行性能测试,对比测试和容量规划 4jmet

敖尔其楞的专栏 531

[转]Tcpcopy简介与实战

Tcpcopy简介 TCPCopy是一种请求复制(所有基于tcp的packets)工具 ,其功能是复制在线数据包,修改TCP/IP头部信息,发送给测试服务器,达到欺骗测试服务器的TCP 程序的目的,从而为欺骗上层应用打下坚实基础。 TCPCopy七大功能 1)分布式压力测试工具,利用在线数据,可以测试系统能够承受的压力大小(远比ab压力测试工具真实地多),也可以提前发现一些bug...

weixin_34015566的博客 107

ab压力测试是使用以及介绍

在运维工作中,压力测试是一项非常重要的工作。比如在一个网站上线之前,能承受多大访问量、在大访问量情况下性能怎样,这些数据指标好坏将会直接影响用户体验。   但是,在压力测试中存在一个共性,那就是压力测试的结果与实际负载结果不会完全相同,就算压力测试工作做的再好,也不能保证100%和线上性能指标相同。面对这些问题,我们只能尽量去想方设法去模拟。所以,压力测试非常有必要,有了这些数据,我们就能对自己做...

qq_37655695的博客 3800

性能压测的选型和注意事项

【众多选择】  当前市面上能够提供性能压测的工具很多,选择面也能很广泛,下面我将结合实际具体业务逐一分析和筛选。  TcpCopy  线上引流模式,针对新项目或全新功能就不太合适了,业务层面若需要一定量的业务逻辑支持,很难做得到。 JMeter  Java编写,在执行1万个压测用户线程时,CPU上下文切换频繁,大量并发时会有内存溢出问题,很显然也不

dananhai381的专栏 1697

电子商务平台的业务峰值测试保障方案

电商大促常态化背景下,系统面临多波次流量冲击,2024年峰值达日常15-23倍。测试体系采用分层策略(基础设施、中间件、应用服务、业务流程)和动态容量预测模型,通过全链路压测(含数据脱敏、流量录制、故障注入)保障系统稳定性。建立四级监控和三级熔断机制,组建战时指挥团队,编制28个应急预案。某电商平台实施后成功支撑82万QPS峰值,实现零故障且成本优化17%。方案有效解决了微服务架构下的雪崩风险、流量预测等核心挑战。

2501_94261392的博客 469

java 各工具网址

最近在网上查资料碰到好多没接触过的技术,先汇总在这里备用,以后慢慢吸收   1. JNA JNI的替代品,调用方式比JNI更直接,不再需要JNI那层中间接口,几乎达到Java直接调用动态库   2. SmallSQL 基于JDBC3.0转为Desktop应用设计的嵌入式数据库,纯Java,本地访问,不支持网络 但目前好像不太活跃,最新版本是0.2,并且2008年后没有更新   3...

u013930835的博客 4861
上一篇: tcpcopy架构漫谈
下一篇: 如何利用pcap接口从数据链路层发包?
wangbin579
博客等级 码龄22年 426粉丝 162原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值