日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

流量复制_快速体验之《gor+diffy实现线上流量复制到测试环境》

發(fā)布時(shí)間:2024/7/23 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 流量复制_快速体验之《gor+diffy实现线上流量复制到测试环境》 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

對(duì)于沒有副作用的接口(重復(fù)發(fā)送不會(huì)產(chǎn)生兩份數(shù)據(jù)、不會(huì)產(chǎn)生多余的監(jiān)控統(tǒng)計(jì)等等),就可以用這種方式方便的做回歸測(cè)試。 部署三個(gè)不接外部流量的服務(wù),兩份老版本、一份新版本,把生產(chǎn)環(huán)境的流量復(fù)制到 Diffy 上。 如果生產(chǎn)環(huán)境支持通過請(qǐng)求頭之類的方式區(qū)分測(cè)試流量和真實(shí)流量,就可以擴(kuò)大使用范圍。

啟動(dòng)serverA-8000

# 啟動(dòng)服務(wù)docker run --detach --publish=8000:80 --name=serverA nginxdocker exec -it serverA bashapt updateapt install vimvim /etc/nginx/conf.d/default.conf# 添加一個(gè) Pathlocation /testerhome { default_type application/json; return 200 '{"tag":"old","noise":"1"}';}# :wq 保存退出,重載 Nginxnginx -s reload# 退出容器exit# 輸出 Nginx log 到終端上docker logs -f serverA

訪問 http://127.0.0.1:8000/testerhome

curl http://127.0.0.1:8000/testerhome # 可以看到返回了 {"tag":"old","noise":"1"},終端也輸出了如下日志172.17.0.1 - - [13/Oct/2019:07:04:04 +0000] "GET /testerhome HTTP/1.1" 200 28 "-" "curl/7.54.0" "-" "-"

啟動(dòng)serverB-8010

# 啟動(dòng)服務(wù)docker run --detach --publish=8010:80 --name=serverB nginxdocker exec -it serverB bashapt updateapt install vimvim /etc/nginx/conf.d/default.conf# 添加一個(gè) Pathlocation /testerhome { default_type application/json; return 200 '{"tag":"old","noise":"1"}';}# :wq 保存退出,重載 Nginxnginx -s reload# 退出容器exit# 輸出 Nginx log 到終端上docker logs -f serverB# 再打開一個(gè)終端,啟動(dòng)gor流量復(fù)制sudo ./gor --input-raw :8000 --output-http http://127.0.0.1:8010

訪問 http://127.0.0.1:8000/testerhome

curl http://127.0.0.1:8000/testerhome # 可以看到 8010 端口上的 serverB 也產(chǎn)生了訪問日志172.17.0.1 - - [13/Oct/2019:07:14:04 +0000] "GET /testerhome HTTP/1.1" 200 28 "-" "curl/7.54.0" "-" "-"

啟動(dòng)serverC-8020

# 響應(yīng)是 {"tag":"old","noise":"2"}# 啟動(dòng)服務(wù)docker run --detach --publish=8020:80 --name=serverC nginxdocker exec -it serverC bashapt updateapt install vimvim /etc/nginx/conf.d/default.conf# 添加一個(gè) Pathlocation /testerhome { default_type application/json; return 200 '{"tag":"old","noise":"2"}';}# :wq 保存退出,重載 Nginxnginx -s reload# 退出容器exit# 輸出 Nginx log 到終端上docker logs -f serverC

啟動(dòng)serverD-8030

# 響應(yīng)是 {"tag":"new","noise":"3"}# 啟動(dòng)服務(wù)docker run --detach --publish=8030:80 --name=serverD nginxdocker exec -it serverD bashapt updateapt install vimvim /etc/nginx/conf.d/default.conf# 添加一個(gè) Pathlocation /testerhome { default_type application/json; return 200 '{"tag":"new","noise":"3"}';}# :wq 保存退出,重載 Nginxnginx -s reload# 退出容器exit# 輸出 Nginx log 到終端上docker logs -f serverD

訪問 http://127.0.0.1:8000/testerhome

curl http://127.0.0.1:8000/testerhome # 可以看到 8010 端口上的 serverB 也產(chǎn)生了訪問日志172.17.0.1 - - [13/Oct/2019:07:14:04 +0000] "GET /testerhome HTTP/1.1" 200 28 "-" "curl/7.54.0" "-" "-"

啟動(dòng)diffy服務(wù)

# primary 主要版本返回的結(jié)果# secondary 如果開啟降噪處理,會(huì)認(rèn)同這個(gè)版本接口返回的結(jié)果# candidate 要對(duì)比的版本docker run -d --name diffy-01 -p 8880:8880 -p 8881:8881 -p 8889:8889 diffy/diffy -candidate=10.2.76.154:8030 -master.primary=10.2.76.154:8010 -master.secondary=10.2.76.154:8020 -service.protocol=http -serviceName=My-Service -proxy.port=:8880 -admin.port=:8881 -http.port=:8889 -rootUrl='localhost:8889' -summary.email="happy@a.com"訪問 [http://127.0.0.1:8889]訪問 [http://127.0.0.1:8889]

訪問 [http://127.0.0.1:8889]

看到展示 Diffy 結(jié)果的界面

重啟 gor

這次把將 8000 端口監(jiān)聽到的請(qǐng)求復(fù)制一份轉(zhuǎn)發(fā)到 Diffy 的 8880 端口

sudo ./gor --input-raw :8000 --output-http http://127.0.0.1:8880

訪問http://127.0.0.1:8000/testerhome

可以看到 8010、8020、8030 端口上的三個(gè)服務(wù)都產(chǎn)生了訪問日志

對(duì)比diffy上面的結(jié)果

如果一個(gè)字段在 master.primary 和 master.secondary 上不一致,很有可能不是 bug,時(shí)間戳或者個(gè)性推薦之類的數(shù)據(jù)會(huì)這樣。這時(shí)候可以 把 Exclude Noise 開關(guān)打開,排除這些“噪聲”。如果一個(gè)請(qǐng)求過去,返回的value可以是不同的場(chǎng)景

總結(jié)

以上是生活随笔為你收集整理的流量复制_快速体验之《gor+diffy实现线上流量复制到测试环境》的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。