Как переписать serviceId для Spring Cloud Gateway с обнаружением сервиса - PullRequest
0 голосов
/ 08 ноября 2019

Я мигрирую zuul шлюз в SCG. Мои сервисы работают в Куберне и зарегистрированы через консула. Типичное имя сервиса - xxx-service. Поэтому с текущей конфигурацией шлюза я могу вызвать их по http://address/api/xxx-service/some-path

Моя текущая конфигурация:

spring:
  cloud:
    gateway:
      discovery:
        locator:
          enabled: true
          lower-case-service-id: true
          predicates:
            - name: Path
              args:
                pattern: "'/api/' + serviceId + '/**'"
          filters:
            - name: RewritePath
              args:
                regexp: "'/api/' + serviceId + '/(?<remaining>.*)'"
                replacement: "'/${remaining}'"

Но клиенты должны вызывать их без суффикса -service в имени службы. Как настроить SCG для возможности вызова служб с помощью http://address/api/xxx-service/some-path

Предыдущая конфигурация zuul:

zuul.routes.xxx.service-id=xxx-service
zuul.routes.aaa-bbb.service-id=aaa-bbb-service
zuul.routes.aaa-bbb.path=/aaa/bbb/**
zuul.strip-prefix=true
zuul.prefix=/api
...