zuul的作用是服務閘道器,使用者的請求先通過zuul,由zuul**至各服務。由此,zuul可以做很多任務作,如校驗,鑑權等。
需要zuul註冊進eureka註冊中心
>
>
org.springframework.cloudgroupid
>
>
spring-cloud-starter-netflix-zuulartifactid
>
dependency
>
>
>
org.springframework.cloudgroupid
>
>
spring-cloud-starter-netflix-eureka-clientartifactid
>
dependency
>
需要新增註解:@enablezuulproxy
@enablezuulproxy
public
class
}
(1) 如何通過zuul訪問到目標服務?
例如:localhost:9000/order/order/orderlist
order:是服務名稱
(2)如何自定義訪問的連線位址呢?
參考1.1, 1.2
(3) 使用zuul,cookie預設是不生效的,需要特殊的配置,詳見:2.1, 2.2。
(4) 如果想遮蔽默寫連線,不想被外界訪問,配置見 3。
# 1.1 簡寫,微服務名稱不分大小寫;
# springcloud-demo-provier: /pro/**
# 1.2 這裡的名稱是可以隨意命名的
aaa:
path: /provider/**
# 這裡的微服務名稱大小寫都可以,但是url中一定是小寫的
serviceid: springcloud-demo-provier
# 2.1配置cookie生效
sensitiveheaders:
# 2.2 所有服務cookie生效
sensitive-headers:
# 3. 遮蔽特定的url
過濾器的使用需要繼承zuulfilter類
@component
public
class
mypostfilter
extends
zuulfilter
@override
// 每個過濾器都有執行順序,數值越小,越先執行
// 前置: filterconstants.pre_decoration_filter_order - 1
// 後置: filterconstants.send_response_filter_order - 1
public
intfilterorder()
@override
//是否進行攔截
public
boolean
shouldfilter()
@override
// 攔截的業務**
public object run()
throws zuulexception
}
例項:通過zuul實現限流,使用google的ratelimiter,令牌桶
@component
public
class
ratelimitfilter
extends
zuulfilter
@override
public
intfilterorder()
@override
public
boolean
shouldfilter()
@override
public object run()
throws zuulexception
return null;
}}
SpringCloud系列學習
在講解springcloud 之前,我們先講一講單體架構系統。所謂的單體架構就是所有功能,都放在乙個應用裡。比如後面要講的乙個單體產品服務應用,提供資料和檢視都在乙個springboot裡。單體架構系統有其好處,如便於開發,測試,部署也很方便,直接打成乙個 jar 或者 war,就什麼都好了。不過單...
SpringCloud學習系列總綱
1 springcloud學習系列eureka 1 入門篇 1 springcloud學習系列gateway 1 入門篇 2 springcloud學習系列gateway 2 動態路由 3 springcloud學習系列gateway 3 限流篇 4 springcloud學習系列gateway 4...
Spring Cloud系列勘誤
spring cloud系列已經寫完了,這是一系列的學習筆記,由於寫作匆忙,難免會有出錯的文字或者 實在抱歉。目前作者已經發現了幾處有錯誤的地方,為了小夥伴們在學習的過程中不陷入泥淖,我將已發現的幾處錯誤先列出來,如果小夥伴還有發現其他錯誤,歡迎指正。1.使用spring cloud搭建高可用服務註...