Springcloud學習系列之Zuul的使用

2021-10-05 04:56:33 字數 2444 閱讀 3050

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搭建高可用服務註...