Порядок маршрутов в Spring Cloud Gateway - PullRequest
0 голосов
/ 06 мая 2019

Мы внедряем маршруты программно, используя реализацию RouteDefinitionLocator. У нас есть две службы, которые должны регистрироваться по одному и тому же маршруту, где одна из них считается резервной, если другая не существует. Предпочтительный маршрут с указанным путем:

RouteDefinition{id='CompositeDiscoveryClient_ms-1400133464', predicates=[PredicateDefinition{name='Path', args={pattern=/yambas/rest/apps/*/models/ms/**}}], filters=[FilterDefinition{name='RewritePath', args={regexp=/yambas/rest/apps/(?<remaining>.*), replacement=/ms/apps/${remaining}}}], uri=lb://ms, order=0}

И более общий, который должен срабатывать только при обнаружении другого маршрута:

RouteDefinition{id='CompositeDiscoveryClient_yambas-1171178634', predicates=[PredicateDefinition{name='Path', args={pattern=/yambas/rest/**}}], filters=[], uri=lb://yambas, order=0}

Таким образом, при вызове /yambas/rest/apps/bla/models/ms должен использоваться первый маршрут, а при вызове /yambas/rest/apps/bla/models/otherms/* должен использоваться второй (резервный).

Проблема в том, что даже атрибут order на маршруте, похоже, не решает эту проблему; В настоящее время мы не можем установить этот порядок / приоритет маршрутов. Это намерение?

1 Ответ

0 голосов
/ 07 мая 2019

Похоже, что мы установили порядок неверно - установив маршрут с более низким приоритетом на порядок 1, а с более высоким на 0 -

@ spencergibb, что определенно стоит упомянуть в документации.

...