「线上流量回放java」线上流量回放

博主:adminadmin 2022-11-30 12:58:08 56

本篇文章给大家谈谈线上流量回放java,以及线上流量回放对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

怎么用java实现流量监控功能

你需要获取到从外面传进来的byte数据流,然后统计各个数据的长度,一般都是byte[]数组 或者ByteArrayInputString对象

关于“流量回放”的一些调研

使用流量回放的背景:

而随着业务增长,每次发布需要覆盖的Case越来越多,这时对所有Case都进行回归显然不太现实,人工测试也往往不能完全避免出现问题。

《携程流量回放平台实践》:

《写成QA-流量回放系统揭秘》:

【应用的场景】【问题】:

1.测试环境回归测试——问题:1.环境要求,一些状态不对导致的报错或者异常如何区分 2.没有生产数据权限如何处理

2.生产环境发布后线上回归测试:1.对于修改部分的异常如何识别和区分 

3.压测,好处:更贴近真实流量,可直接使用生产海量的真实场景作为测试case,解决压力源的问题

【总体优点】:既有效保存了原集群流量无修改无损耗,又解决了人工构造的测试数据不能拟合生产真实场景的问题

非常适合没有逻辑改动的,云迁移,纯技术重构下的测试(测试范围难以判断准确,测试工作量巨大的情景)

【总体问题】:1.压测方面不适用于生产压力不大的企业信息化系统,不适用于生产数据敏感系统

 2.生产环境做操作的话需要有荣在恢复的基础设施做支撑

3.底层数据依赖的问题再业务数据链路长,业务场景复杂的情况下较难解决

4.系统时间是否会影响结果

《轻量级流量复制实践》:

个人实践推荐工具:goreplay工具

其他流量回放工具:TcpCopy,Nginx,sandbox-repeter(阿里今年开源)

《流量回放在RPC实战中的应用》:

如果你经常翻阅一些技术文章的话,可能你会不止一次看到过“流量回放”这个词。我简单地介绍一下,所谓的流量就是某个时间段内的所有请求,我们通过某种手段把发送到 A 应用的所有请求录制下来,然后把这些请求统一转发到 B 应用,让 B 应用接收到的请求参数跟 A 应用保持一致,从而实现 A 接收到的请求在 B 应用里面重新请求了一遍。整个过程我们称之为“流量回放”。

酷家乐的流量回放实践:

酷家乐流量回放实践(二):

《流量回放在系统重构中的测试实践》:

如何使用tcpcopy离线回放TCP流量

网络方面常常有很多奇特的bug,总是上线后才会触发,线下的各种压力工具都没办法模拟出来。如果能把线上的流量复制到线下测试环境里使用,测试时可以覆盖更多潜在问题点,追查问题时又能完全不影响线上服务,该多好……tcpcopy来做这个事情正好,而且新版的tcpcopy使用起来更简单~~

总体来说,是把线上流量或保存的离线pcap包里的报文,变换源/目标地址后发给被测试机,被测试机上的服务回复这些报文,默认路由或者匹配修改后源地址的包的路由,全部指向辅助机,辅助机根据报文类型和TCP协议规范,回复相应的报文给被测试机;这样,从被测试机看,自己收到了网络请求并正常回复,完成了C/S的交互处理。

以下是官网原理图:

使用tcpdump工具,可以很方便的抓取和保存流量到pcap文件,如下:

(1)在回放机上,安装tcpcopy

(2)在辅助机上,安装intercept

(0)环境说明

注意:辅助机和测试机要在同一个网段哦~~以便测试机默认网关指向辅助机

测试机:12.21.219.22

测试机上的服务地址:12.21.219.22:8080

辅助机:12.21.219.24

回放机:12.21.219.23

(1)在辅助机上,启动intercept

(2)在回放机上,启动tcpcopy

(3)在测试机上,配置默认路由为辅助机,以保证所有回复回放流量的报文都打到辅助机上,例如:

(4)如果服务器上带iptables过滤规则,记得打开哦,比如辅助机上,我要允许回放机连接36524端口,可以如下配置

(1)优点

tcpcopy git地址:

intercept git地址:

java如何实现监控服务器网络流量

你可以在JSP页面用这三个方法

request.getRemoteAddr()//获取远程IP

request.getRemoteUser()//获取远程用户

request.getRemoteHost()//获取远程主机

可以写方法,请看java.net包下的类.

java.net.InetAddress

java.net.InetSocketAddress

获取IP,主机和端口.

java流量监控程序

我曾经做过类似的系统,也是采用Java实现的,在编程中用到第三方软件包---Jpcap,因为Jpcap为实现流量监控和数据包(TCP包,UDP包,IP包,ICMP包等)提供一系列的接口和类,具体详情请E-mail:xhwdy26@163.com,本人可以提供源码,但源码需要修改一下,也可以在网上搜索Jpcap的DEMO,里面也有相关的代码。

关于线上流量回放java和线上流量回放的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-30,除非注明,否则均为首码项目网原创文章,转载请注明出处。