隔着超薄肉丝进入小说_男女刺激性视频大片_女教师的诱波多野结衣_一级欧美过瘾大片

當前位置: 首頁 / 技術干貨 / 正文
gateway介紹(三)動態轉發

2022-11-02

  動態轉發

  上面的例子中我們的目的地址是直接寫死的一個服務器,實際開發中肯定是動態從注冊中心中獲取

  此處以Eureka為例子,其他的注冊中心只需要替換對應的 注冊中心配置即可

  3.1 整合注冊中心

  3.1.1 添加eureka依賴

  org.springframework.cloudspring-cloud-starter-netflix-eureka-client

  3.1.2 配置

  我們需要給網關配置注冊中心的位置,并且告訴gateway從注冊中心中獲取服務,需要將url變成lb開頭的協議

spring:
application:
name: gateway
cloud:
inetutils:
ignored-interfaces: [ 'VMware.*' ] #經過測試,我們發現我們的電腦上存在多個網卡的時候, 程序注冊到注冊中心的時候可能會帶錯ip過去,比如把虛擬機的網卡ip帶過去了,如果是本機內部使用沒問題,但是闊機器就不行了# 忽略掉我們不想要的網卡
gateway:
routes:
- id: 08consumer-eureka-feign # 當前路由策略的唯一ID,可以隨便寫
uri: lb://08CONSUMER-EUREKA-FEIGN #lb開頭代表是負載均衡,意味著需要從注冊中心獲取數據,獲取的是當前名字的服務地址
predicates: #配置斷言, 符合下面斷言的請求會轉發到上面的url,斷言很多種條件
- Path=/order/** #斷言的條件是請求的地址符合這個表達式,注意格式為Path=/order/**
loadbalancer: #設置負載均衡
ribbon:
enabled: false #設置不用ribbon的負載均衡方式,因為它是阻塞的,設置為false后會自動變為非阻塞
#配置注冊中心
eureka:
client:
service-url:
defaultZone: http://localhost:10000/eureka/
instance:
prefer-ip-address: true #在注冊中心顯示的是ip,而不是機器名

  上面的方式是因為gateway中有默認的一個 The LoadBalancerClient Filter,他的主要作用是用于進行負載均衡,當我們的uri是lb://開頭的地址的時候會觸發負載均衡的規則,不過LoadBalancerClientFilter 默認是阻塞操作,建議使用 ReactiveLoadBalancerClientFilter 非阻塞操作,使用方式很簡單,只需要設置spring.cloud.loadbalancer.ribbon.enabled屬性為false即可,別的不需要動

  注意如果網關找不到對應的服務會提示503

負載均衡介紹

image-20220419005520858

  3.2 服務名稱轉發

  上面的例子中,我們將/order/**映射到了08CONSUMER-EUREKA-FEIGN服務中,并且從注冊中心中獲取到了地址,

  但是實際開發中我們的網關能處理的地址可能非常多,那就需要設置非常多的配置,這樣比較麻煩,因此我們可以通過服務名稱轉發,我們只需要通過 http://網關/服務名/地址的方式訪問

spring:
application:
name: gateway
cloud:
inetutils:
ignored-interfaces: [ 'VMware.*' ] #經過測試,我們發現我們的電腦上存在多個網卡的時候, 程序注冊到注冊中心的時候可能會帶錯ip過去,比如把虛擬機的網卡ip帶過去了,如果是本機內部使用沒問題,但是闊機器就不行了# 忽略掉我們不想要的網卡
gateway:
discovery:
locator:
enabled: true #開啟基于服務名字的發現,需要在訪問地址前先添加服務的名字
lower-case-service-id: true #將服務名字小寫
loadbalancer:
ribbon:
enabled: false #設置不用ribbon的負載均衡方式,因為它是阻塞的,設置為false后會自動變為非阻塞
#配置注冊中心
eureka:
client:
service-url:
defaultZone: http://localhost:10000/eureka/
instance:
prefer-ip-address: true #在注冊中心顯示的是ip,而不是機器名

好程序員公眾號

  • · 剖析行業發展趨勢
  • · 匯聚企業項目源碼

好程序員開班動態

More+
  • HTML5大前端 <高端班>

    開班時間:2021-04-12(深圳)

    開班盛況

    開班時間:2021-05-17(北京)

    開班盛況
  • 大數據+人工智能 <高端班>

    開班時間:2021-03-22(杭州)

    開班盛況

    開班時間:2021-04-26(北京)

    開班盛況
  • JavaEE分布式開發 <高端班>

    開班時間:2021-05-10(北京)

    開班盛況

    開班時間:2021-02-22(北京)

    開班盛況
  • Python人工智能+數據分析 <高端班>

    開班時間:2021-07-12(北京)

    預約報名

    開班時間:2020-09-21(上海)

    開班盛況
  • 云計算開發 <高端班>

    開班時間:2021-07-12(北京)

    預約報名

    開班時間:2019-07-22(北京)

    開班盛況
IT培訓IT培訓
在線咨詢
IT培訓IT培訓
試聽
IT培訓IT培訓
入學教程
IT培訓IT培訓
立即報名
IT培訓

Copyright 2011-2023 北京千鋒互聯科技有限公司 .All Right 京ICP備12003911號-5 京公網安備 11010802035720號