Spring Cloud是當(dāng)前炙手可熱的微服務(wù)開發(fā)框架。它的功能強(qiáng)大,組件豐富,設(shè)計(jì)優(yōu)雅。目前Spring Cloud還在不斷發(fā)展之中。
Spring Cloud即將發(fā)布Spring Cloud Edgware 版本。該版本解決了不少Bug,新增了不少新特性,本系列博客將為大家詳細(xì)闡述在Spring Cloud Edgware中新增的特性。
我們知道,Zuul有一個(gè)非常實(shí)用的 /routes 端點(diǎn)。訪問 $ZUUL_URL/routes 即可查看當(dāng)前Zuul的路由規(guī)則,從而在很多情況下能夠幫助我們定位Zuul的問題——當(dāng)Zuul沒有按照我們的計(jì)劃去轉(zhuǎn)發(fā)請(qǐng)求時(shí),/routes 就會(huì)很有用,可通過該端點(diǎn)查看Zuul轉(zhuǎn)發(fā)的規(guī)則。訪問結(jié)果類似如下:
{
/sample-service/**: "sample-service"
}
// 這段JSON表示:如果請(qǐng)求$ZUUL_URL/sample-service/**,Zuul會(huì)將請(qǐng)求轉(zhuǎn)發(fā)到注冊(cè)在Eureka Server上的sample-service服務(wù)的/**。
TIPS:使用
routes端點(diǎn)的前提:
- Zuul Server需要有Spring Boot Actuator的依賴,否則訪問
/routes端點(diǎn)將會(huì)返回404;。- 設(shè)置
management.security.enabled = false,否則將會(huì)返回401;也可添加Spring Security的依賴,這樣可通過賬號(hào)、密碼訪問routes端點(diǎn)。
/routes 端點(diǎn)相關(guān)文檔,可詳見http://cloud.spring.io/spring-cloud-static/Dalston.SR4/single/spring-cloud.html#_the_routes_endpoint 。
在Spring Cloud Edgware 中,Spring Cloud對(duì)該端點(diǎn)進(jìn)行了增強(qiáng)。我們可通過/routes?format=detail 來查看更多詳情。訪問后,將會(huì)展示類似如下的結(jié)果:
{
"/sample-service/**": {
"id": "sample-service",
"fullPath": "/sample-service/**",
"location": "sample-service",
"path": "/**",
"prefix": "/sample-service",
"retryable": false,
"customSensitiveHeaders": false,
"prefixStripped": true
}
}
有結(jié)果可知,此時(shí)Zuul為我們展示了很多有用的信息,例如:轉(zhuǎn)發(fā)到了那個(gè)地址、是否重試等。使用/routes?format=detail 可進(jìn)一步簡(jiǎn)化我們的調(diào)試與排錯(cuò)。
本文首發(fā)
http://www.itmuch.com/spring-cloud/edgware-zuul-routes-endpoint/
干貨分享
