通過微服務名實現動態路由

2021-10-25 02:30:49 字數 1203 閱讀 7852

預設情況下gateway會根據註冊中心的服務列表,以註冊中心上微服務名為路徑建立動態路由進行**,從而實現動態路由的功能。

1、修改9527的yml

①需要注意的是uri的協議為lb,表示啟用gateway的負載均衡功能。

②lb://servicename是spring cloud gateway在微服務中自動為我們建立的負載均衡uri

server

:port

:9527

spring::

name

: cloud-gateway

cloud

:gateway

:discovery

:locator

:enabled

:true

#開啟從註冊中心動態建立路由的功能,利用微服務名進行路由

routes:-

id: payment_routh #路由的id,沒有固定規則但要求唯一,建議配合服務名

#uri: http://localhost:8001 #匹配後提供服務的路由位址

uri: lb://cloud-payment-service

predicates

:- path=/payment/get/** #斷言,路徑相匹配的進行路由-id

: payment_routh2

#uri: http://localhost:8001 #匹配後提供服務的路由位址

uri: lb://cloud-payment-service

predicates

:- path=/payment/lb/** #斷言,路徑相匹配的進行路由

eureka

:instance

:hostname

: cloud-gateway-service

client

:service-url

:register-with-eureka

:true

fetch-registry

:true

defaultzone

:

2、測試

①啟動乙個eureka7001+兩個服務提供者8001/8002

②訪問http://localhost:9527/payment/lb

會發現8001和8002交替出現

Zuul忽略所有微服務,只路由指定的微服務

一 介紹 很多場景下,可能只想讓zuul 指定的微服務,此時可以將zuul.ignored services設為 二 配置舉例 ignored services 使用 可忽略所有微服務 routes microservice provider user user 這樣就讓zuul只路由micoser...

通過Springboot拆分服務構建微服務集

應用背景 1.基於spring boot開發 2.依賴activemq,kafka,redis,mongodb,mysql等開源軟體 3.內部服務伺服器,分布式計算平台服務,檢索服務,訊息推送服務等 拆分原因 1.原有的 應用模組之間高度耦合,各個模組都擔當了牽一髮而動全身的 角色 2.應用的配置資...

微服務消費端通過feign呼叫微服異常問題

在專案開發中,我們的呼叫方通過feign呼叫微服時,如果微服出現業務異常 例如空指標,或拋出自定義的異常 和非業務異常 引數不合法4xx異常 都會進入到呼叫方的全域性異常 丟擲的code全部轉換成了500,這樣不友好 實際上只有業務異常feign才會轉換成500錯誤且轉成feignexception...