備注:
實(shí)際上是一個(gè)代理工具跳纳,但是又不是簡(jiǎn)單的進(jìn)行代理(tcp寺庄,可以配置策略力崇,toxics 實(shí)現(xiàn)延遲,模擬故障亮靴,
對(duì)于這個(gè)大家可能了解的就是netflix 公司的chaos monkey,實(shí)際的使用大家可以參考相關(guān)文章贞岭,本次只是
對(duì)于toxiproxy 的簡(jiǎn)單安裝試用,同時(shí)這個(gè)工具可以放到大家持續(xù)集成工具集中宪彩。
1. 安裝(為了簡(jiǎn)單同時(shí)安裝了server 以及cli)
// 下載地址
wget https://github.com/Shopify/toxiproxy/releases/download/v2.1.2/toxiproxy-server-linux-amd64
wget https://github.com/Shopify/toxiproxy/releases/download/v2.1.2/toxiproxy-cli-linux-amd64
// 配置安裝(實(shí)際上就是改名稱讲婚,拷貝文件)
mv toxiproxy-cli-linux-amd64 toxiproxy-cli
mv toxiproxy-server-linux-amd64 toxiproxy-server
chmod +x*
cp ?* ?/usr/bin/
2. 試用(為了測(cè)試安裝了redis )
// redis 環(huán)境準(zhǔn)備
yum ? install ? -y ? redis
systemctl ?restart ?redis
// 啟動(dòng)toxiproxy (后臺(tái)進(jìn)程)
nohup ? toxiproxy-server ? -host"0.0.0.0" &
// 代理 redis
toxiproxy-cli ? create ? myredis ?-l 0.0.0.0:26379 ?-u 127.0.0.1:6379
// 配置toxic(讓redis 處理延遲1秒)
toxiproxy-cli ?toxic ?add ?myredis ?-t latency ? -a ?latency=1000
// 連接測(cè)試
redis-cli ?-h XXXXXX ?-p ?26379
測(cè)試效果
3. ?幫助命令(比較簡(jiǎn)單)
a.server
toxiproxy-server ? ?--help
Usage ? of ?toxiproxy-server:
-config string
JSON file ?containing ?proxies ?to ?create on startup
-host string
Host for ?toxiproxy's API to listen on (default "localhost")
-port string
Port ?for ?toxiproxy's API to listen on (default "8474")
-seed int
Seed for ?randomizing toxic ?swith(default1511142454198638055)
b.cli
list,l,li,lslistallproxies
usage:'toxiproxy-cli list'
inspect,i,insinspectasingleproxy
usage:'toxiproxy-cli inspect '
create,c,newcreateanewproxy
usage:'toxiproxy-cli create --listen --upstream '
toggle,togtoggleenabledstatusonaproxy
usage:'toxiproxy-cli toggle '
delete,ddeleteaproxy
usage:'toxiproxy-cli delete '
toxic,tadd,removeorupdateatoxic
usage:see'toxiproxy-cli toxic'
4. client sdk ?(因?yàn)樘峁┝藃est api ?sdk 比較好使用,同時(shí)官方也提供了好多)
toxiproxy-ruby
toxiproxy-go
toxiproxy-python
toxiproxy.net
toxiproxy-php-client
toxiproxy-node-client
toxiproxy-java
5. 參考文檔
https://github.com/Shopify/toxiproxy