3、SpringcloudAlibaba Gateway

SpringCloud Gateway

什麼是微服務網關

微服務網關是整個微服務API請求的入口,可以實現日誌攔截、權限控制、解決跨域問題、限流、熔斷、負載均衡、黑名單與白名單攔截、授權等。

過濾器與網關的區別

過濾器用於攔截單個服務
網關攔截整個的微服務

Zuul與Gateway有那些區別

Zuul網關屬於netfix公司開源的產品屬於第一代微服務網關
Gateway屬於SpringCloud自研發的第二代微服務網關
相比來說SpringCloudGateway性能比Zuul性能要好
注意:Zuul基於Servlet實現的,阻塞式的Api, 不支持長連接。
SpringCloudGateway基於Spring5構建,能夠實現響應式非阻塞式的Api,支持長連接,能夠更好的整合Spring體系的產品。

Gateway環境快速搭建

<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-gateway</artifactId>
        <version>2.2.2.RELEASE</version>
   </dependency>
####服務網關名稱
spring:
  application:
    name: springcloud-alibaba-geteway
  cloud:
    gateway:
      discovery:
        locator:
          ####開啓以服務id去註冊中心上獲取轉發地址
          enabled: true
        ###路由策略
      routes:
        ###路由id
        - id: member
          ####轉發lb:springcloud-alibaba-impl-member/
          uri: lb://springcloud-alibaba-impl-member/
          filters:
            - StripPrefix=1
          ###匹配規則
          predicates:
            - Path=/member/**
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
      config:
        server-addr: 127.0.0.1:8848
        ###分組
        group: DEFAULT_GROUP
        ###類型
        file-extension: yaml

解決跨域的問題

  • 1.HttpClient轉發
  • 2.使用過濾器允許接口可以跨域 響應頭設置
  • 3.Jsonp 不支持我們的post 屬於前端解決
  • 4.Nginx解決跨域的問題保持我們域名和端口一致性
  • 5.Nginx也是通過配置文件解決跨域的問題
  • 6.基於微服務網關解決跨域問題,需要保持域名和端口一致性
  • 7.使用網關代碼允許所有的服務可以跨域的問題
  • 8.使用SpringBoot註解形式@CrossOrigin
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章