天天看點

網關高可用

單點是系統高可用的大敵,單點往往是系統高可用最大的風險和敵人,應該盡量在系統設計的過程中避免單點。方法論上,高可用保證的原則是“叢集化”,或者 叫“備援”:隻有一個單點,挂了服務會受影響;如果有備援備份,挂了還有其他backup能夠頂上。
網關高可用

 (1) 準備多個GateWay工程

server:
  port: 8080 #服務端口
-------------------------------------------
server:
  port: 8081 #服務端口
-------------------------------------------
spring:
  application:
    name: api-gateway #指定服務名
  cloud:
    gateway:
      routes:
      - id: product-service
        uri: lb://service-product  #根據微服務名從注冊中心拉取微服務請求路徑
        predicates:
        - Path=/product-service/**   #/product-service/product/1 重寫為 /product/1 ---> 192.168.1.1:9001/product/1
        filters:  #配置路由過濾器
          - RewritePath=/product-service/(?<segment>.*), /$\{segment}  #路徑重寫的過濾器,yml中$ --> $\

      discovery:
        locator:
          enabled: true   #開啟根據微服務名自動轉發
          lower-case-service-id: true  #微服務名稱小寫形式呈現

#配置Eureka
eureka:
  client:
    register-with-eureka: false #是否将自己注冊到注冊中心
    service-url:
      defaultZone: http://localhost:9000/eureka/
      registry-fetch-interval-seconds: 10  # 從Eureka拉取伺服器配置資訊的周期,設定為 10s
  instance:
    prefer-ip-address: true #使用ip位址注冊

           

 (2) 配置ngnix

#配置多台伺服器(這裡隻在一台伺服器上的不同端口)
upstream gateway {
    server 127.0.0.1:8081;
    server 127.0.0.1:8080;
}
#請求轉向mysvr 定義的伺服器清單
location / {
    proxy_pass http://gateway;
}
           

上一頁              下一頁

繼續閱讀