Как настроить Ribbon / Hystrix для маршрута или конечной точки, используя Zuul Proxy - PullRequest
0 голосов
/ 08 января 2019

У меня есть микросервис ft-admin, который выставляет 2 конечные точки app-config и app-analytic. В моем проекте @EnableZuulProxy gateway я могу определить правила маршрутизации и указать другие конфигурации для ленты и Hystrix на уровне микросервиса, используя serviceId, как показано ниже.

zuul:
  routes:
    admin-services:
      path: /admin/**
      serviceId: ft-admin
      stripPrefix: true

ft-admin:
  ribbon:
    ActiveConnectionsLimit: 2

hystrix:
  command:
    ft-admin:
      execution:
        isolation:
          thread:
            timeoutInMilliseconds: 10000

Мне интересно, есть ли способ довести вышеуказанные конфигурации до уровня конечной точки для каждого app-config и app-analytic в отдельности. Цель состоит в том, чтобы иметь возможность задать различные настройки для каждой конечной точки следующим образом.

zuul:
  routes:
    app-config-endpoint:
      path: /app-config/**
      serviceId: ft-admin
      stripPrefix: false
    app-analytic-endpoint:
      path: /app-analytic/**
      serviceId: ft-admin
      stripPrefix: false

app-config-endpoint:
  ribbon:
    ActiveConnectionsLimit: 5
app-analytic-endpoint:
  ribbon:
    ActiveConnectionsLimit: 2

...

Когда я запускаю свой проект шлюза в режиме отладки с ft-admin.ribbon.ActiveConnectionsLimit: 2, я вижу следующие строки в журнале.

c.netflix.config.ChainedDynamicProperty  : Property changed: 'ft-admin.ribbon.ActiveConnectionsLimit = 2'
c.netflix.config.ChainedDynamicProperty  : Flipping property: ft-admin.ribbon.ActiveConnectionsLimit to use it's current value:2

Однако, когда я запускаю свой проект с app-config-endpoint.ribbon.ActiveConnectionsLimit: 5, я вижу следующие строки.

c.netflix.config.ChainedDynamicProperty  : Property changed: 'ft-admin.ribbon.ActiveConnectionsLimit = -2147483648'
c.netflix.config.ChainedDynamicProperty  : Flipping property: ft-admin.ribbon.ActiveConnectionsLimit to use NEXT property: niws.loadbalancer.availabilityFilteringRule.activeConnectionsLimit = 2147483647

Я пытался найти тонну сообщений, но кажется, что конфигурации всегда останавливаются на уровне микросервиса. Конфигурации конечной точки / уровня маршрута полностью игнорируются.

Буду очень признателен, если вы укажете мне правильное направление или расскажете свою историю, если вы попробовали это раньше.

...