Мы внедряем маршруты программно, используя реализацию 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 на маршруте, похоже, не решает эту проблему; В настоящее время мы не можем установить этот порядок / приоритет маршрутов. Это намерение?