tcpcopy部署
tcpcopy是一種請求復(fù)制工具。可以將線上流量拷貝到測試機器,實時的模擬線上環(huán)境。在不影響線上用戶的情況下,使用線上流量進行測試,以盡早發(fā)現(xiàn)bug。也可以通過放大流量,進行壓力測試,評估系統(tǒng)承載能力。
?
部署前準備:
1、準備一臺線上機器,在該服務(wù)器上裝tcpcopy,主要將該機器的tcp流量復(fù)制出來
2、準備一臺測試服務(wù)器,將線上流量復(fù)制到該服務(wù)器上,需要與線上環(huán)境一樣(這樣才能接受到copy過來的請求)
3、準備一臺輔助服務(wù)器,主要安裝intercept這個服務(wù),用于與tcpcopy服務(wù)進行通信(注意,該服務(wù)不啟動的話,tcpcopy服務(wù)也起不來)
?
過程:tcpcopy會把要復(fù)制的端口的協(xié)議包復(fù)制出來,發(fā)給測試服務(wù)器的指定端口,測試服務(wù)器收到包后通過在測試服務(wù)器上修改路由條件(下面會提到怎么修改),會響應(yīng)給輔助服務(wù)器,輔助服務(wù)器再丟掉這些包
?
開始部署
假設(shè)3臺機器:線上服務(wù)器 Online Nginx 10.30.97.38 .測試服務(wù)器 Stage Nginx 10.30.96.3 .輔助服務(wù)器 Stage SF1R 10.30.96.30
?
線上服務(wù)器:
Clone the repo:?git clone?git://github.com/session-replay-tools/tcpcopy.git
解壓安裝服務(wù)
?
yum -y install libpcap-devel libpcap
tar -zxvf tcpcopy.tar
cd tcpcopy
./configure --prefix=/usr/local/tcpcopy && make && make install
啟動命令
/usr/local/tcpcopy/sbin/tcpcopy -x 8080-10.30.96.3:8070 -s?10.30.96.30?-c 5.5.5.x -d -l /var/log/tcpcopy.log
參數(shù)詳解:
-x 本地服務(wù)端口-測試服務(wù)器ip:測試服務(wù)器端口?
-s 輔助服務(wù)器ip
-c 將copy的包的源ip改成5.5.5.x
-d 后臺執(zhí)行
-l 日志輸出
?
輔助服務(wù)器:
Clone the repo:?git clone?git://github.com/session-replay-tools/intercept.git
tar -zxvf tcpcopy.tar
cd tcpcopy
./configure --prefix=/usr/local/intercept && make && make install
啟動命令
intercept -i eth0? -F tcp and src port 8070 -d
參數(shù)詳解:
-i 監(jiān)聽的網(wǎng)卡
-F 監(jiān)聽協(xié)議
src port 包的源ip未8070
?
測試服務(wù)器:
配置路由規(guī)則
route add -net 5.5.5.0 netmask 255.255.255.0 gw 10.30.96.30(輔助服務(wù)器ip )把來自5.5.5.0的網(wǎng)段的包(tcpcopy啟動命令配置的)轉(zhuǎn)到10.30.96.30上
需要開啟路由轉(zhuǎn)發(fā)功能
echo "1" > /proc/sys/net/ipv4/ip_forward
永久生效的話,需要修改sysctl.conf:
net.ipv4.ip_forward = 1
執(zhí)行sysctl -p馬上生效
注意:輔助服務(wù)器不能開啟這個功能
轉(zhuǎn)載于:https://www.cnblogs.com/davidwang456/articles/8257500.html
總結(jié)
- 上一篇: 1号店11.11:分布式搜索引擎的架构实
- 下一篇: 饿了么高稳定、高性能、高可用、高容错AP