Может ли Spring Cloud Gateway сопоставить один запрос двум нисходящим сервисам? - PullRequest
0 голосов
/ 05 февраля 2020

В фоновом режиме мое приложение должно вставить пользовательский ввод в две базы данных, а именно MongoDB и Elasticsearch. Уже есть две службы уровня базы данных с функцией сохранения.

Сейчас я работаю над экспериментом по дублированию одного запроса для двух последующих служб баз данных. Я попытался использовать Spring Cloud Gateway с маршрутами, он может направить запрос либо в MongoDB, либо в Elasticsearch.

Если маршрут к MongoDB размещен по сравнению с Elasticsearch, то Spring Cloud Gateway направляет запрос в MongoDB. Путь к Elasticsearch игнорируется, даже если он имеет те же предикаты, что и MongoDB. И наоборот.

Вот конфигурация в Yaml. Кто-нибудь может посоветовать, выполнимо ли дублирование запроса в Spring Cloud Gateway? Спасибо.

spring:
  cloud:
    gateway:
      routes:

      - id: http-others-route-to-mongo
        uri: http://localhost:9064/
        predicates:
        - Path=/api/**
        - Method=POST,PUT,DELETE
        - Between=2020-01-15T23:59:59.000+08:00[Asia/Shanghai], 2100-12-31T23:59:59.000+08:00[Asia/Shanghai]

      - id: http-others-route-to-es
        uri: http://localhost:9037/
        predicates:
        - Path=/api/**
        - Method=POST,PUT,DELETE
        - Between=2020-01-15T23:59:59.000+08:00[Asia/Shanghai], 2100-12-31T23:59:59.000+08:00[Asia/Shanghai]
...