gateway网关不走本地问题

gateway网关不走本地问题

    原始网关配置
[
  {
          
   
    "id": "lecent-park",
    "order": 0,
    "predicates": [
      {
          
   
        "name": "Path",
        "args": {
          
   
          "pattern": "/lecent-park/**"
        }
      }
    ],
    "filters": [],
    "uri": "lb://lecent-park-cy"
  }
]
    解决后配置
将order值设置为-1
[
  {
          
   
    "id": "lecent-park",
    "order": -1,
    "predicates": [
      {
          
   
        "name": "Path",
        "args": {
          
   
          "pattern": "/lecent-park/**"
        }
      }
    ],
    "filters": [],
    "uri": "lb://lecent-park-cy"
  }
]
    原因分析
  1. 路由配置自动装配到route
  2. 在请求进来的时候进行路由匹配
  3. 在路由匹配的时候是循环所有路由,直到匹配成功返回PathPattern对象

问题就出来匹配的时候,因为同一个路由(/lecent-park/**)有多个,先匹配到谁就返回谁

  1. 装配路由(有两个)
  2. 匹配路由(如果order=0) 走的路由是lecent-park
  3. 如果order=-1 第一次就匹配到lecent-park-cy
经验分享 程序员 微信小程序 职场和发展