W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
ReactiveLoadBalancerClientFilter
在交換屬性ServerWebExchangeUtils.GATEWAY_REQUEST_URL_ATTR
中尋找URI。如果該網(wǎng)址具有lb
方案(即lb://myservice
),它將使用Spring Cloud ReactorLoadBalancer
將名稱(上例中為myservice
)解析為實(shí)際的主機(jī)和端口并替換相同屬性中的URI。
未經(jīng)修改的原始URL會(huì)附加到ServerWebExchangeUtils.GATEWAY_ORIGINAL_REQUEST_URL_ATTR
屬性中的列表中。過濾器還將查看ServerWebExchangeUtils.GATEWAY_SCHEME_PREFIX_ATTR
屬性,以查看其是否等于lb
,然后應(yīng)用相同的規(guī)則。
application.yml。
spring: cloud: gateway: routes: - id: myRoute uri: lb://service predicates: - Path=/service/**
默認(rèn)情況下,當(dāng)ReactorLoadBalancer
無法找到服務(wù)實(shí)例時(shí),將返回503
。您可以通過設(shè)置spring.cloud.gateway.loadbalancer.use404=true
將網(wǎng)關(guān)配置為返回404
。
從ReactiveLoadBalancerClientFilter
返回的ServiceInstance
的isSecure
值將覆蓋對(duì)網(wǎng)關(guān)的請(qǐng)求中指定的方案。例如,如果請(qǐng)求通過HTTPS
進(jìn)入網(wǎng)關(guān),但ServiceInstance
表示它不安全,則下游請(qǐng)求將通過HTTP
發(fā)出。 相反的情況也可以適用。但是,如果在網(wǎng)關(guān)配置中為路由指定了GATEWAY_SCHEME_PREFIX_ATTR
,則前綴將被刪除,并且從路由URL生成的方案將覆蓋ServiceInstance
配置。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: