Опрос удаленных государственных магазинов в Кубернетесе (интерактивные запросы) - PullRequest
1 голос
/ 18 апреля 2020

Существуют ли какие-либо рекомендации для запросов к удаленным хранилищам состояний между экземплярами приложений, развернутыми в Kubernetes? Наши экземпляры приложений развернуты с 2 или более репликами.

На основе документации https://kafka.apache.org/10/documentation/streams/developer-guide/interactive-queries.html#id7

streams.allMetadataForStore("word-count")
    .stream()
    .map(streamsMetadata -> {
        // Construct the (fictituous) full endpoint URL to query the current remote application instance
        String url = "http://" + streamsMetadata.host() + ":" + streamsMetadata.port() + "/word-count/alice";
        // Read and return the count for 'alice', if any.
        return http.getLong(url);
    })
    .filter(s -> s != null)
    .findFirst();

, приведет ли streamsMetadata.host () к IP-адресу POD? И если это произойдет, будет ли разрешен вызов с этого модуля другому? Это правильный подход?

1 Ответ

2 голосов
/ 19 апреля 2020

streamsMetadata.host ()

Этот метод возвращает все, что вы настроили с помощью параметра конфигурации application.server. Т.е. каждый экземпляр приложения (в вашем случае каждый POD) должен установить этот конфиг, чтобы предоставить информацию о том, как он доступен (например, его IP и порт). Kafka Streams распространяет эту информацию для всех экземпляров приложения.

Вам также необходимо соответствующим образом настроить POD, чтобы разрешить отправку / получение запроса запроса через указанный порт. Эта часть является дополнительным кодом, который вам нужно написать самостоятельно, т. Е. Своего рода «слой маршрутизации запросов». Kafka Streams имеет только встроенную поддержку для запроса локального состояния и для распространения метаданных о том, какое состояние и где размещено; но встроенная поддержка запросов на удаление отсутствует.

Пример реализации (WordCountInteractiveQueries) уровня маршрутизации запросов можно найти на Github: https://github.com/confluentinc/kafka-streams-examples

Я бы также рекомендовал ознакомиться с документами и статьями блога:

...