Sping Cloud 到底是用Zuul還是用Nginx

本文翻譯自以下:
原文 http://instea.sk/2015/04/netflix-zuul-vs-nginx-performance/

直接連接服務(wù)

不走代理直接訪問(wèn)服務(wù)

$ ab -n 10000 -c 200 http://target/sample.html

....

Document Path: /sample.html
Document Length: 26650 bytes

Total transferred: 268940000 bytes
HTML transferred: 266500000 bytes
Requests per second: 2928.45 [#/sec] (mean)
Time per request: 68.295 [ms] (mean)
Time per request: 0.341 [ms] (mean, across all concurrent requests)
Transfer rate: 76911.96 [Kbytes/sec] received

Connection Times (ms)
 min mean[+/-sd] median max
Connect: 4 33 6.0 32 66
Processing: 20 35 7.5 35 392
Waiting: 20 35 6.4 34 266
Total: 24 68 7.8 66 423

Percentage of the requests served within a certain time (ms)
 50% 66
 66% 67
 75% 69
 80% 70
 90% 74
 95% 81
 98% 91
 99% 92
 100% 423 (longest request)

測(cè)試結(jié)果為:2928 ; 2725 ; 2834 ; 2648 req/s拧略,此結(jié)果只供參考

通過(guò)nginx訪問(wèn)服務(wù)

配置nginx.conf

server {
   listen 80 default_server;
   listen [::]:80 default_server ipv6only=on;

   # Make site accessible from http://localhost/
   server_name localhost;

   # allow file upload
   client_max_body_size 10M;

   location / {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $remote_addr;
      proxy_set_header Host $host;
      proxy_pass http://target:80;
   }
}

執(zhí)行測(cè)試腳本

$ ab -n 50000 -c 200 http://proxy/sample.html
...
Server Software: nginx/1.4.6
Server Hostname: proxy
Server Port: 80

Document Path: /sample.html
Document Length: 26650 bytes

Concurrency Level: 200
Time taken for tests: 52.366 seconds
Complete requests: 50000
Failed requests: 0
Total transferred: 1344700000 bytes
HTML transferred: 1332500000 bytes
Requests per second: 954.81 [#/sec] (mean)
Time per request: 209.465 [ms] (mean)
Time per request: 1.047 [ms] (mean, across all concurrent requests)
Transfer rate: 25076.93 [Kbytes/sec] received

Connection Times (ms)
 min mean[+/-sd] median max
Connect: 3 50 11.7 48 114
Processing: 37 159 11.9 160 208
Waiting: 36 159 11.9 160 207
Total: 40 209 10.4 209 256

Percentage of the requests served within a certain time (ms)
 50% 209
 66% 212
 75% 214
 80% 216
 90% 220
 95% 224
 98% 232
 99% 238
 100% 256 (longest request)

測(cè)試結(jié)果為:954 ; 953 ; 941 req/s惭笑,并發(fā)量變低

通過(guò)Zuul訪問(wèn)服務(wù)

實(shí)現(xiàn)Zuul

@SpringBootApplication
@Controller
@EnableZuulProxy
public class DemoApplication {
  public static void main(String[] args) {
    new SpringApplicationBuilder(DemoApplication.class).web(true).run(args);
  }
}

定義路由

zuul:
  routes:
    sodik:
      path: /sodik/**
      url: http://target

執(zhí)行測(cè)試腳本

$ ab -n 50000 -c 200 http://proxy:8080/sodik/sample.html

Server Software: Apache-Coyote/1.1
Server Hostname: proxy
Server Port: 8080

Document Path: /sodik/sample.html
Document Length: 26650 bytes

Concurrency Level: 200
Time taken for tests: 136.164 seconds
Complete requests: 50000
Failed requests: 2
(Connect: 0, Receive: 0, Length: 2, Exceptions: 0)
Non-2xx responses: 2
Total transferred: 1343497042 bytes
HTML transferred: 1332447082 bytes
Requests per second: 367.20 [#/sec] (mean)
Time per request: 544.657 [ms] (mean)
Time per request: 2.723 [ms] (mean, across all concurrent requests)
Transfer rate: 9635.48 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 2 12 92.3 2 1010
Processing: 15 532 321.6 461 10250
Waiting: 10 505 297.2 441 9851
Total: 17 544 333.1 467 10270

Percentage of the requests served within a certain time (ms)
50% 467
66% 553
75% 626
80% 684
90% 896
95% 1163
98% 1531
99% 1864
100% 10270 (longest request)

測(cè)試結(jié)果為:367 req/s,并發(fā)量比較低赫冬,并且出現(xiàn)了2次請(qǐng)求錯(cuò)誤

再多測(cè)試幾次
Document Path: /sodik/sample.html
Document Length: 26650 bytes

Concurrency Level: 200
Time taken for tests: 50.080 seconds
Complete requests: 50000
Failed requests: 0
Total transferred: 1343550000 bytes
HTML transferred: 1332500000 bytes
Requests per second: 998.39 [#/sec] (mean)
Time per request: 200.322 [ms] (mean)
Time per request: 1.002 [ms] (mean, across all concurrent requests)
Transfer rate: 26199.09 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 2 16 7.9 16 126
Processing: 15 184 108.1 203 1943
Waiting: 13 183 105.9 202 1934
Total: 18 200 107.8 218 1983

Percentage of the requests served within a certain time (ms)
50% 218
66% 228
75% 235
80% 239
90% 254
95% 287
98% 405
99% 450
100% 1983 (longest request)

測(cè)試結(jié)果為:998 req/s,并發(fā)量和通過(guò)Nginx訪問(wèn)服務(wù)差不多

結(jié)論

Zuul的原始性能接近Nginx屠橄。事實(shí)上座硕,在啟動(dòng)預(yù)熱之后,顯示測(cè)試結(jié)果更好一些。但Nginx看上去會(huì)穩(wěn)定一下馒稍,Zuul出現(xiàn)了2次的請(qǐng)求錯(cuò)誤皿哨。

如果你想使用Zuul的其他功能,或者希望通過(guò)它與其他的Netflix服務(wù)集成(比如Eureka)纽谒,Zuul可以作為其他簡(jiǎn)單反向代理的替代品证膨。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市佛舱,隨后出現(xiàn)的幾起案子椎例,更是在濱河造成了極大的恐慌,老刑警劉巖请祖,帶你破解...
    沈念sama閱讀 216,997評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件订歪,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡肆捕,警方通過(guò)查閱死者的電腦和手機(jī)刷晋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)慎陵,“玉大人眼虱,你說(shuō)我怎么就攤上這事∠Γ” “怎么了捏悬?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,359評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)润梯。 經(jīng)常有香客問(wèn)我过牙,道長(zhǎng),這世上最難降的妖魔是什么纺铭? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,309評(píng)論 1 292
  • 正文 為了忘掉前任寇钉,我火速辦了婚禮,結(jié)果婚禮上舶赔,老公的妹妹穿的比我還像新娘扫倡。我一直安慰自己,他們只是感情好竟纳,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評(píng)論 6 390
  • 文/花漫 我一把揭開(kāi)白布撵溃。 她就那樣靜靜地躺著,像睡著了一般蚁袭。 火紅的嫁衣襯著肌膚如雪征懈。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,258評(píng)論 1 300
  • 那天揩悄,我揣著相機(jī)與錄音卖哎,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛亏娜,可吹牛的內(nèi)容都是我干的焕窝。 我是一名探鬼主播,決...
    沈念sama閱讀 40,122評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼维贺,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼它掂!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起溯泣,我...
    開(kāi)封第一講書(shū)人閱讀 38,970評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤虐秋,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后垃沦,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體客给,經(jīng)...
    沈念sama閱讀 45,403評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評(píng)論 3 334
  • 正文 我和宋清朗相戀三年肢簿,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了靶剑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,769評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡池充,死狀恐怖桩引,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情收夸,我是刑警寧澤坑匠,帶...
    沈念sama閱讀 35,464評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站卧惜,受9級(jí)特大地震影響笛辟,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜序苏,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望捷凄。 院中可真熱鬧忱详,春花似錦、人聲如沸跺涤。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,705評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)桶错。三九已至航唆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間院刁,已是汗流浹背糯钙。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,848評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人任岸。 一個(gè)月前我還...
    沈念sama閱讀 47,831評(píng)論 2 370
  • 正文 我出身青樓再榄,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親享潜。 傳聞我的和親對(duì)象是個(gè)殘疾皇子困鸥,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)剑按,斷路器疾就,智...
    卡卡羅2017閱讀 134,654評(píng)論 18 139
  • 《老男孩Linux運(yùn)維》筆記 隱藏Nginx軟件版本號(hào) 一般來(lái)說(shuō),軟件的漏洞都和版本有關(guān)艺蝴。因此要盡量隱藏對(duì)訪問(wèn)用戶...
    Zhang21閱讀 3,640評(píng)論 0 28
  • 在互聯(lián)網(wǎng)公司猬腰,Nginx可以說(shuō)是標(biāo)配組件,但是主要場(chǎng)景還是負(fù)載均衡吴趴、反向代理漆诽、代理緩存、限流等場(chǎng)景锣枝;而把Nginx...
    pure_adoration閱讀 4,063評(píng)論 4 77
  • 這是一篇翻譯厢拭,關(guān)于大家經(jīng)常質(zhì)疑的一個(gè)問(wèn)題:API網(wǎng)關(guān)Zuul的性能。原文:NETFLIX ZUUL VS NGIN...
    程序猿DD閱讀 6,210評(píng)論 0 11
  • 這是一篇翻譯撇叁,關(guān)于大家經(jīng)常質(zhì)疑的一個(gè)問(wèn)題:API網(wǎng)關(guān)Zuul的性能供鸠。原文:NETFLIX ZUUL VS NGIN...
    極樂(lè)君閱讀 893評(píng)論 0 2