MyException - 我的异常网
当前位置:我的异常网» 行业应用 » Zuul:鏅鸿兘璺敱鍜岃繃婊

Zuul:鏅鸿兘璺敱鍜岃繃婊

www.MyException.Cn  网友分享于:2013-09-28  浏览:0次
Zuul:鏅鸿兘璺敱鍜岃繃婊?

璺敱 鏄井鏈嶅姟涓嶅彲鑾风己鐨勪竴鐜€?/p>

渚嬪锛氣€?鈥?鍙兘鏄犲皠鍒颁綘搴旂敤涓婚〉锛?api/users鏄犲皠鍒扮敤鎴锋湇鍔★紝/api/shop鏄犲皠鍒拌喘鐗╂湇鍔°€俍uul銆俍uul鏄疦etflix鍑哄搧鐨勪竴涓熀浜嶫VM璺敱鍜屾湇鍔$鐨勮礋杞藉潎琛″櫒銆?/p>

Netflix uses Zuul聽for the following:聽
* Authentication聽
* Insights聽
* Stress Testing聽
* Canary Testing聽
* Dynamic Routing聽
* Service Migration聽
* Load Shedding聽
* Security聽
* Static Response handling聽
* Active/Active traffic management

Zuul鐨勮鍒欏拰杩囨护鍣ㄥ厑璁镐娇鐢ㄥ悇绉嶅熀浜嶫VM鐨勮瑷€锛屾敮鎸佸熀浜?a class="replace_word" href="http://lib.csdn.net/base/java" target="_blank" style="color: #df3434; font-weight: bold;" title="Java 鐭ヨ瘑搴?>Java鍜孏roovy銆?/p>

娉ㄦ剰:zuul.max.host.connections宸茬粡琚袱涓柊鐨勫睘鎬ф浛浠o細zuul.host.maxTotalConnections 鍜?zuul.host.maxPerRouteConnections锛岄粯璁ゅ垎鍒负200鍜?0.

娉ㄦ剰锛氶粯璁ゆ墍鏈塺outes鐨凥ystrix闅旂妯″紡锛圗xecutionIsolationStrategy锛夋槸SEMAPHORE zuul.ribbonIsolationStrategy鍙互鏀逛负THREAD,濡傛灉杩欎釜闅旂妯″紡鏇村ソ銆?/p>

How to Include Zuul

org.springframework.cloud and artifact id聽spring-cloud-starter-zuul銆係ee the聽Spring Cloud Project page聽for details銆?/p>

Embedded Zuul Reverse Proxy

褰撲竴涓猆I搴旂敤鎯宠浠g悊璋冪敤涓€涓垨鑰呭涓悗鍙版湇鍔$殑鏃跺€欙紝Sping cloud鍒涘缓浜嗕竴涓祵鍏ョ殑Zuul proxy寰堟柟渚跨殑寮€鍙戜竴涓畝鍗曠殑妗堜緥銆傝繖涓姛鑳藉浜庝唬鐞嗗墠绔渶瑕佽闂殑鍚庣鏈嶅姟闈炲父鏈夌敤锛岄伩鍏嶄簡鎵€鏈夊悗绔湇鍔¢渶瑕佸叧蹇冪鐞咰ORS鍜岃璇佺殑闂.

鍦⊿pring Boot涓诲嚱鏁颁笂閫氳繃娉ㄨВ @EnableZuulProxy 鏉ュ紑鍚? 杩欐牱鍙互璁╂湰鍦扮殑璇锋眰杞彂鍒伴€傚綋鐨勬湇鍔? 鎸夌収绾﹀畾, 涓€涓狪D涓衡€漸sers鈥濈殑鏈嶅姟浼氭敹鍒?/users 璇锋眰璺緞鐨勪唬鐞嗚姹?鍓嶇紑浼氳鍓ョ). Zuul浣跨敤Ribbon瀹氫綅鏈嶅姟娉ㄥ唽涓殑瀹炰緥, 骞朵笖鎵€鏈夌殑璇锋眰閮藉湪hystrix鐨刢ommand涓墽琛? 鎵€浠ュけ璐ヤ俊鎭皢浼氬睍鐜板湪Hystrix metrics涓? 骞朵笖涓€鏃︽柇璺櫒鎵撳紑, 浠g悊璇锋眰灏嗕笉浼氬皾璇曞幓閾炬帴鏈嶅姟.

娉ㄦ剰锛歓uul starter娌℃湁鍖呭惈鏈嶅姟鍙戠幇鐨勫鎴风, 鎵€浠ュ浜庤矾鐢变綘闇€瑕佸湪classpath涓彁渚涗竴涓牴鎹畇ervice IDs鍋氭湇鍔″彂鐜扮殑鏈嶅姟.(渚嬪, eureka鏄竴涓笉閿欑殑閫夋嫨)

鍘诲拷鐣ヤ竴涓嚜鍔ㄦ坊鍔犵殑鏈嶅姟锛屽彲浠ュ湪鏈嶅姟ID琛ㄨ揪寮忓垪琛ㄤ腑璁剧疆 zuul.ignored-services銆傚鏋滀竴涓湇鍔″尮閰嶅埌浜嗚蹇界暐鐨勫垪琛? 浣嗘槸瀹冧篃鏄庣‘鐨勯厤缃湪璺敱鍒楄〃涓? 灏嗕笉浼氳蹇界暐, 渚嬪:

application.yml
zuul:
    ignoredServices: '*'
    routes:
        users: /myusers/**

鍦ㄨ繖涓緥瀛愪腑锛屾墍鏈夌殑鏈嶅姟閮戒細琚拷鐣ワ紝闄や簡鈥渦sers鈥濄€?/p>

澧炲姞鎴栨敼鍙樹唬鐞嗚矾鐢辫鍒? 浣犲彲浠ユ坊鍔犵被浼间笅闈㈢殑澶栭儴閰嶇疆:

application.yml
 zuul:
  routes:
    users: /myusers/**

杩欒〃绀猴紝HTTP璋冪敤 鈥?myusers鈥?浼氳浆鍒?鈥渦ser鈥?鏈嶅姟锛堜緥濡傦細鈥?myusers/101鈥濊烦杞埌鈥?101鈥濓級銆?/p>

涓轰簡鏇寸粏绮掑害鐨勬帶鍒朵竴涓矾鐢? 浣犲彲浠ョ嫭绔嬫寚瀹氶厤缃矾寰勫拰鏈嶅姟ID:

application.yml
 zuul:
  routes:
    users:
      path: /myusers/**
      serviceId: users_service

杩欒〃绀猴紝HTTP璋冪敤 鈥?myuser鈥濅細璺宠浆鍒扳€漸sers_servie鈥濇湇鍔°€傝矾鐢卞繀椤婚厤缃竴涓彲浠ヨ鎸囧畾涓衡€漚nt璺緞鍖归厤鍘熷垯鈥濈殑鈥漰ath鈥濓紝鎵€浠モ€?myusers/鈥濆彧鑳藉尮閰嶄竴涓眰绾? 浣嗏€?myusers/*鈥滃彲浠ュ尮閰嶅绾?锛堥檮娉細Ant path 鍖归厤鍘熷垯锛?/p>

鍚庣鐨勯厤缃棦鍙互鏄€漵erviceId鈥?瀵逛簬鏈嶅姟鍙戠幇涓殑鏈嶅姟), 涔熷彲浠ユ槸鈥漸rl鈥?鐗╃悊鍦板潃), 渚嬪:

application.yml
 zuul:
  routes:
    users:
      path: /myusers/**
      url: http://example.com/users_service

url-routes鐨勬柟寮忎笉浼氭墽琛?HystrixCommand 涔熶笉浼氶€氳繃Ribbon璐熻浇澶氫釜URLS銆傝瀹炵幇杩欎簺锛岄渶缁欒繖涓猻erviceid鎸囧畾涓€涓猻ervice-route骞堕厤缃竴涓猂ibbon client锛堣繖涓繀椤诲湪Ribbon涓鐢‥ureka: seeabove for more information锛夈€?/p>

application.yml
zuul:
  routes:
    users:
      path: /myusers/**
      serviceId: users

ribbon:
  eureka:
    enabled: false

users:
  ribbon:
    listOfServers: example.com,google.com

浣犲彲浠ヤ娇鐢╮egexmapper鎻愪緵serviceId鍜宺outes涔嬮棿鐨勭粦瀹? 瀹冧娇鐢ㄦ鍒欒〃杈惧紡缁勬潵浠巗erviceId鎻愬彇鍙橀噺, 鐒跺悗娉ㄥ叆鍒拌矾鐢辫〃杈惧紡涓?

@Bean
public PatternServiceRouteMapper serviceRouteMapper() {
    return new PatternServiceRouteMapper(
        "(?<name>^.+)-(?<version>v.+$)",
        "${version}/${name}");
}

杩欒〃绀簊erviceId 鈥渕yusers-v1鈥?灏嗕細琚槧灏勫埌 鈥?v1/myusers/鈥?浠讳綍姝e垯琛ㄨ揪寮忛兘鍙互锛屼絾鏄墍鏈夌殑鍛藉悕缁勯兘蹇呴』鍦╯ervicePattern鍜宺outePattern涓瓨鍦ㄣ€傚鏋渟ervicePattern娌℃湁鍖归厤鍒颁竴涓猻erviceId锛岄粯璁ょ殑琛屼负浼氳鍚敤銆傚湪涓婇潰鐨勪緥瀛愪腑锛宻erviceId鈥漨yusers鈥濆皢浼氭槧灏勫埌鈥?myusers/鈥?娌℃湁鍙戠幇鐗堟湰)杩欎釜鐗规€ч粯璁ゆ槸绂佺敤鐨勶紝鑰屼笖鍙敤浜庡彂鐜扮殑鏈嶅姟銆?/p>

缁欐墍鏈夋槧灏勬坊鍔犲墠缂€锛屽彲浠ヨ缃?zuul.prefix 涓€涓€硷紝姣斿/api銆傝繖涓墠缂€榛樿浼氬垹闄わ紝鍦ㄨ姹傝烦杞箣鍓嶃€傦紙閫氳繃 zuul.stripPrefix=false 鍙互鍏抽棴杩欎釜鍔熻兘锛夈€備綘涔熷彲浠ュ湪鍗曚釜鏈嶅姟涓叧闂繖涓姛鑳? 渚嬪:

application.yml
 zuul:
  routes:
    users:
      path: /myusers/**
      stripPrefix: false

zuul.stripPrefix鍙娇鐢ㄤ簬浣跨敤浜唞uul.prefix閰嶇疆鎯呭喌涓嬨€傚湪涓€涓畾涔夊ソ浜嗙殑 route鈥檚 path涓笉浼氭湁浠讳綍褰卞搷銆?/p>

鍦ㄨ繖涓緥瀛愪腑锛屸€漸sers鈥漵ervice鐨勮姹傗€?myusers/101鈥濆皢浼氳烦杞埌鈥?myusers/101鈥濄€?/p>

zuul.routes 瀹為檯涓婄粦瀹氬埌绫诲瀷涓?ZuulProperties 鐨勫璞′笂. 濡傛灉浣犳煡鐪嬭繖涓璞′綘浼氬彂鐜颁竴涓彨鈥漴etryable鈥濈殑瀛楁, 璁剧疆涓衡€漷rue鈥濅細浣縍ibbon瀹㈡埛绔嚜鍔ㄥ湪澶辫触鏃堕噸璇?濡傛灉浣犻渶瑕佷慨鏀归噸璇曞弬鏁? 鍙互浣跨敤Ribbon client configuration)

X-Forwarder-Host璇锋眰澶撮粯璁ゆ坊鍔犲埌杞彂璇锋眰涓€傝缃畓uul.addProxyHeaders=false绂佺敤瀹冦€傝矾寰勫墠缂€榛樿琚垹闄わ紝聽
鍒板悗鍙版湇鍔$殑璇锋眰浼氭坊鍔犱竴涓?鈥淴-Forwarded-Prefix鈥?鈥?myusers鈥濆湪涓婇潰鐨勪緥瀛愪腑)銆?/p>

涓€涓狜EnableZuulProxy鐨勫簲鐢ㄥ彲浠ヤ綔涓哄崟鏈轰娇鐢ㄥ鏋滀綘璁剧疆浜嗕竴涓粯璁よ矾鐢憋紙鈥?鈥濓級锛屼緥濡倆uul.route.home: / 浼氭妸鎵€鏈夌殑璇锋眰锛堚€?**鈥濓級杞埌home鏈嶅姟銆?/p>

濡傛灉闇€瑕佹洿缁嗙矑搴︾殑蹇界暐閰嶇疆锛屼綘鍙互鎸囧畾鐗规畩鐨勮〃杈惧紡鏉ラ厤缃拷鐣ヨ鍒?杩欎簺琛ㄨ揪寮忎粠route location鐨勫紑濮嬭繘琛屽尮閰嶏紝鎰忓懗鐫€鍓嶇紑搴旇琚寘鎷湪鍖归厤琛ㄨ揪寮忎腑. 蹇界暐琛ㄨ揪寮忓奖鍝嶆墍鏈夋湇鍔″拰鍙栦唬浠讳綍璺敱鐨勭壒娈婇厤缃?

application.yml
 zuul:
  ignoredPatterns: /**/admin/**
  routes:
    users: /myusers/**

杩欎釜鐨勬剰鎬濇槸鎵€鏈夎姹? 姣斿鈥?myusers/101鈥濈殑璇锋眰浼氳烦杞埌鈥漸sers鈥濇湇鍔$殑鈥?101鈥? 浣嗗寘鍚€?admin/鈥濈殑璇锋眰灏嗕笉琚鐞?

Zuul Http Client

榛樿鐨剒ull鐨凥ttp clietn鐜板湪鏄疉pach HTTP Client,鏇夸唬浜嗗凡杩囨湡鐨凴ibbon RestClient銆傛兂浣跨敤RestClient鎴栦娇鐢╫khttp3.OKHttpClient,鍙互璁剧疆ribbon.restclient.enable=true鎴栬€卹ibbon.okhttp.enable=true銆?/p>

Cookies and Sensitive Headers

鍦ㄥ悓涓€涓郴缁熺殑澶氫釜鏈嶅姟涔嬮棿涓垎浜玥eaders鏄彲浠ョ殑锛屼絾鏄綘鍙兘涓嶆兂鎶婁竴浜涙晱鎰焗eaders娉勯湶鍒颁笅娓告湇鍔″櫒銆備綘鍙互鎸囧畾涓€鎵瑰拷鐣ョ殑headers鍒楄〃鍦ㄨ矾鐢遍厤缃腑銆侰ookies鎵紨浜嗕竴涓壒娈婄殑瑙掕壊, 鍥犱负浠栦滑寰堝ソ鐨勫湪娴忚鍣ㄤ腑瀹氫箟, 鑰屼笖浠栦滑鎬绘槸琚涓烘槸鏁忔劅鐨? 濡傛灉浠g悊鐨勫鎴风鏄祻瑙堝櫒, 鍒欏浜庝笅娓告湇鍔℃潵璇村鐢ㄦ埛, cookies浼氬紩璧烽棶棰? 鍥犱负浠栦滑閮芥贩鍦ㄤ竴璧枫€?鎵€鏈変笅娓告湇鍔$湅璧锋潵璁や负浠栦滑鏉ヨ嚜鍚屼竴涓湴鏂?銆?/p>

濡傛灉浣犲浜庝綘鐨勬湇鍔¤璁″緢缁嗗績锛屾瘮濡傦紝濡傛灉鍙湁涓€涓笅娓哥殑鏈嶅姟璁剧疆浜哻ookies锛屼綘鍙兘浼氳瀹冧粠鍚庣鏈嶅姟涓€鐩磋拷婧埌鍓嶇璋冪敤鑰咃紝濡傛灉浣犵殑浠g悊璁剧疆浜哻ookies鑰屼笖鎵€鏈変綘鐨勫悗绔湇鍔¢兘鏄悓涓€绯荤粺鐨勪竴閮ㄥ垎锛屽畠鍙互寰堣嚜鐒剁殑鍏变韩锛堟瘮濡備娇鐢╯pring session鍘昏仈绯讳竴浜涘叡浜姸鎬侊級銆傞櫎姝や箣澶栵紝浠讳綍涓嬫父鏈嶅姟璁剧疆鐨刢ookies鍙互鑳戒笉浼氬鍓嶇璋冪敤鑰呬骇鐢熶綔鐢ㄣ€傛墍浠ュ缓璁涓嶅睘浜庝綘鐨勫煙鍚嶇殑閮ㄥ垎鍦╮outes閲屽皢 鈥淪et-Cookie鈥濆拰鈥淐ookie鈥濇坊鍔犲埌鏁忔劅headers銆?鍗充娇鏄睘浜庝綘鐨勫煙鍚嶇殑璺敱, 灏濊瘯浠旂粏鎬濊€冨湪鍏佽cookies娴佷紶鍦ㄥ畠浠拰浠g悊涔嬮棿鎰忓懗鐫€浠€涔堛€?/p>

姣忎釜璺敱涓殑鏁忔劅澶撮儴淇℃伅閰嶇疆鎸夌収閫楀彿鍒嗛殧, 渚嬪:

application.yml
 zuul:
  routes:
    users:
      path: /myusers/**
      sensitiveHeaders: Cookie,Set-Cookie,Authorization
      url: https://downstream

鏁忔劅headers涔熸敮鎸佸叏灞€璁剧疆 zuul.sensitiveHeaders. 濡傛灉鍦ㄥ崟涓矾鐢变腑璁剧疆 sensitiveHeaders 浼氳鐩栧叏灞€ sensitiveHeaders 璁剧疆.

娉ㄦ剰: 杩欐槸sensitiveHeaders 鐨勯粯璁ゅ€? 浣犳棤闇€璁剧疆闄ら潪浣犻渶瑕佷笉鍚岀殑閰嶇疆. 娉ㄦ剰. 杩欐槸Spring Cloud Netflix 1.1鐨勬柊鍔熻兘(鍦?.0涓? 鐢ㄦ埛鏃犳硶鐩存帴鎺у埗璇锋眰澶村拰鎵€鏈塩ookies).

Ignored Headers

闄や簡姣忎釜route鏁忔劅澶翠互澶? 浣犲彲浠ヨ缃竴涓叏灞€鐨?zuul.ignoredHeaders 鍦ㄤ笅娓哥浉浜掕皟鐢ㄩ棿鍘讳涪寮冭繖浜涘€?鍖呮嫭璇锋眰鍜屽搷搴?. 濡傛灉娌℃湁灏哠pring Security 娣诲姞鍒拌繍琛岃矾寰勪腑, 浠栦滑榛樿鏄┖鐨? 鍚﹀垯浠栦滑浼氳Spring Secuity鍒濆鍖栦竴鎵瑰畨鍏ㄥご(渚嬪 缂撳瓨鐩稿叧). 鍦ㄨ繖绉嶆儏鍐典笅, 鍋囪涓嬫父鏈嶅姟涔熷彲鑳芥坊鍔犺繖浜涘ご淇℃伅, 鎴戝笇鏈涗粠浠g悊鑾峰彇鍊?

The Routes Endpoint

濡傛灉浣犱娇鐢?@EnableZuulProxy 鍚屾椂寮曞叆浜哠pring Boot Actuator, 浣犲皢榛樿澧炲姞涓€涓猠ndpoint, 鎻愪緵http鏈嶅姟鐨?/routes. 涓€涓狦ET璇锋眰灏嗚繑鍥炶矾鐢卞尮閰嶅垪琛? 涓€涓狿OST璇锋眰灏嗗己鍒跺埛鏂板凡瀛樺湪鐨勮矾鐢?(姣斿, 鍦ㄦ湇鍔atalog鍙樺寲鐨勫満鏅腑)

娉ㄦ剰锛氳矾鐢卞垪琛ㄥ簲璇ヨ嚜鍔ㄥ簲绛旀湇鍔$櫥璁板彉鍖? 浣嗘槸POST鏄竴绉嶅己鍒剁珛鍗虫洿鏂扮殑鏂规.

绐掓伅妯″紡鍜屾湰鍦拌烦杞?Strangulation Patterns and Local Forwards)

涓€涓父瑙佺殑杩佺Щ鏃у簲鐢ㄦ垨鑰呮棫鎺ュ彛鐨勬柟寮忥紝灏辨槸閫愭鐨勬浛鎹㈠畠鐨勫疄鐜般€?Zuul浠g悊鏄竴绉嶅緢鏈夌敤鐨勫伐鍏? 鍥犱负浣犲彲浠ヤ娇鐢ㄨ繖绉嶆柟寮忓鐞嗘墍鏈夊鎴风鍒版棫鎺ュ彛鐨勮姹? 鍙槸閲嶅畾鍚戜簡涓€浜涜姹傚埌鏂扮殑鎺ュ彛.

瀹炰緥閰嶇疆锛?/p>

application.yml
 zuul:
  routes:
    first:
      path: /first/**
      url: http://first.example.com
    second:
      path: /second/**
      url: forward:/second
    third:
      path: /third/**
      url: forward:/3rd
    legacy:
      path: /**
      url: http://legacy.example.com

鍦ㄨ繖涓緥瀛愪腑锛屾垜浠浛鎹簡 鈥渓egacy鈥?锛屽畠鏄犲皠鍒版墍鏈夌殑璇锋眰锛屼絾鏄病鏈夊尮閰嶅埌鍏朵粬浠讳綍涓€涓姹傘€傝矾寰?/first/* 鎸囧悜浜嗕竴涓澶栫殑URL. 骞朵笖璺緞 /second/*聽鏄竴涓湰鍦拌烦杞? 姣斿, 甯︽湁Spring娉ㄨВ鐨?@RequestMapping . 璺緞 /third/** 涔熸槸涓€涓湰鍦拌烦杞? 浣嗘槸灞炰簬涓€涓笉鍚岀殑鍓嶇紑. (姣斿 /third/foo 璺宠浆鍒?/3rd/foo )銆?/p>

娉ㄦ剰锛氬拷鐣ヨ〃杈惧紡骞朵笉鏄畬鍏ㄧ殑蹇界暐璇锋眰, 鍙槸閰嶇疆杩欎釜浠g悊涓嶅鐞嗚繖浜涜姹?鎵€浠ヤ粬浠篃鏄烦杞墽琛屾湰鍦板鐞?銆?/p>

Uploading Files through Zuul

濡傛灉浣犱娇鐢?@EnableZuulProxy , 浣犲彲浠ヤ娇鐢ㄤ唬鐞嗚矾寰勪笂浼犳枃浠? 瀵逛簬灏忔枃浠跺彲浠ユ甯镐娇鐢? 瀵逛簬澶ф枃浠舵湁鍙€夌殑璺緞鈥?zuul/鈥滅粫杩嘢pring DispatcherServlet (閬垮厤澶勭悊multipart). 姣斿瀵逛簬 zuul.routes.customers=/customers/*聽, 浣犲彲浠ヤ娇鐢?鈥?zuul/customers/*鈥?鍘讳笂浼犲ぇ鏂囦欢. Servlet璺緞閫氳繃 zuul.servletPath 鎸囧畾. 濡傛灉浣跨敤Ribbon璐熻浇鍧囪 鍣ㄧ殑浠g悊璺敱, 鍦?澶勭悊闈炲父澶х殑鏂囦欢鏃? 浠嶇劧闇€瑕佹彁楂樿秴鏃堕厤缃? 姣斿:

application.yml
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 60000
ribbon:
  ConnectTimeout: 3000
  ReadTimeout: 60000

娉ㄦ剰: 瀵逛簬澶ф枃浠剁殑涓婁紶娴? 浣犲簲璇ュ湪璇锋眰涓娇鐢ㄥ潡缂栫爜. (鏈変簺娴忚鍣ㄩ粯璁や笉杩欎箞鍋?. 姣斿鍦ㄥ懡浠よ涓?

$ curl -v -H "Transfer-Encoding: chunked" \
-F "file=@mylarge.iso" localhost:9999/zuul/simple/file

Plain Embedded Zuul

浣犲彲浠ヨ繍琛屼竴涓病鏈変唬鐞嗗姛鑳界殑Zuul鏈嶅姟, 鎴栬€呮湁閫夋嫨鐨勫紑鍏抽儴鍒嗕唬鐞嗗姛鑳? 濡傛灉浣犱娇鐢?@EnableZuulServer (鏇夸唬 @EnableZuulProxy ). 浣犳坊鍔犵殑浠讳綍 ZuulFilter 绫诲瀷 瀹炰綋绫婚兘浼氳鑷姩鍔犺浇, 鍜屼娇鐢?@EnableZuulProxy 涓€鏍? 浣嗕笉浼氳嚜鍔ㄥ姞杞戒换浣曚唬鐞嗚繃婊ゅ櫒.

鍦ㄤ互涓嬩緥瀛愪腑, Zuul鏈嶅姟涓殑璺敱浠嶇劧鏄寜鐓?鈥渮uul.routes.*鈥濇寚瀹? 浣嗘槸娌℃湁鏈嶅姟鍙戠幇鍜屼唬鐞? 鍥犳鈥漵erviceId鈥濆拰鈥漸rl鈥濋厤缃細琚拷鐣? 姣斿:

application.yml
 zuul:
  routes:
    api: /api/**

鍖归厤鎵€鏈夌殑 鈥?api/**鈥?缁橺uul杩囨护鍣ㄩ摼.

Disable Zuul Filters

鍦ㄤ唬鐞嗗拰鏈嶅姟妯″紡涓? 瀵逛簬Spring Cloud, Zuul榛樿鍔犲叆浜嗕竴鎵?ZuulFilter 绫? 鏌ラ槄聽the zuul filters package聽鍘昏幏鍙栧彲鑳藉紑鍚殑杩囨护鍣? 濡傛灉浣犳兂鍏抽棴鍏朵腑涓€涓? 鍙互绠€鍗曠殑璁剧疆 zuul...disable=true . 鎸夌収绾﹀畾, 鍦?filter 鍚庨潰鐨勫寘鏄痁uul杩囨护鍣ㄧ被. 姣斿鍏抽棴 org.springframework.cloud.netflix.zuul.filters.post.SendResponseFilter , 鍙缃畓uul.SendResponseFilter.post.disable=true.

http://blog.csdn.net/chenqipc/article/details/53322830

文章评论

相关解决方案
  • 暂无相关解决方案
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
每天工作4小时的程序员
每天工作4小时的程序员
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
10个调试和排错的小建议
10个调试和排错的小建议
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
编程语言是女人
编程语言是女人
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
老程序员的下场
老程序员的下场
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
程序员必看的十大电影
程序员必看的十大电影
中美印日四国程序员比较
中美印日四国程序员比较
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
那些争议最大的编程观点
那些争议最大的编程观点
漫画:程序员的工作
漫画:程序员的工作
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
我是如何打败拖延症的
我是如何打败拖延症的
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
为什么程序员都是夜猫子
为什么程序员都是夜猫子
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
程序员应该关注的一些事儿
程序员应该关注的一些事儿
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
程序员和编码员之间的区别
程序员和编码员之间的区别
Java程序员必看电影
Java程序员必看电影
那些性感的让人尖叫的程序员
那些性感的让人尖叫的程序员
Google伦敦新总部 犹如星级庄园
Google伦敦新总部 犹如星级庄园
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
代码女神横空出世
代码女神横空出世
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
我的丈夫是个程序员
我的丈夫是个程序员
程序员都该阅读的书
程序员都该阅读的书
如何成为一名黑客
如何成为一名黑客
一个程序员的时间管理
一个程序员的时间管理
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
总结2014中国互联网十大段子
总结2014中国互联网十大段子
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有