因公司技術架構需要,我從zk+dubbo+springboot開始接觸springcloud一系列架構。首先接觸到新東西,我內心是希望得到學習的,畢竟技多不壓身,更何況用springcloud也不是新技術了[苦瓜臉]。此文章主要講述整個配置關鍵點,其他細節請找我家彥宏。
進入正題:用zuul網關的目的,就我目前來看是為了讓幾個服務對外保證一個域名請求,得到請求后網關進行轉發到各個服務上。第一步准備兩個及以上的微服務,這些都是注冊到eureka上的服務名稱
1.user-serive
user-service服務里的controller1: api/v1/user/userAddress
controller2:api/v1/user/userCompany
2.order-service:如上
3.zuul-service(網關服務)
第二步,在zuul服務里配置轉發策略:
創建zuul模塊的功能,就忽略不講了,都可以在網上搜到。主要是一些配置application.yml的地方,我粘貼出來:
zuul: routes: order-service: path: /**/order/** 此處一定要這樣寫,不要寫成/order/**;否則在進行轉發的時候,請求不通;會在轉發的時候,前面需要手動加上order,再連接api/v1才能請求; user-service: path: /**/user/**
在請求轉發的過程中,第一次請求的時候,zuul會超時,原因如下:(如果大家想仔細了解,可去深究zuul機制)
這是因為zuul采用了懶加載機制,第一次訪問的時候才會加載某些類,而不是啟動時就加載了,由於默認的時間原本就比較短,加載這些類又需要一些時間,這就造成超時了。
解決方式是在application.yml中配置:
此時,如果有請求地址中有order的,就會轉發到order-service去請求;如果地址中有user的,則會轉發到user-service請求,成功轉發。
————————————————————————————————————————————————————————
接下來貼一下swagger關聯代碼
添加swagger的方式:
1.在zuul服務中pom.xml加入:
2.新建swagger配置類:
3.新建文檔配置類
————————————————————————————————————————————————————————
最后整體效果為:
注明:
此文章純屬個人分享,如有不對的地方請大家批評指正。
解決出來的部分內容也是我在網上搜羅匯集的,僅供參考