Какая польза от преобразования Ktable в Streaming перед его материализацией в тему? - PullRequest
0 голосов
/ 09 июля 2019

Я часто вижу этот шаблон в книгах и блогах, которые я читаю повсюду, но не могу понять, насколько он полезен:

Stream.GrouBy.Agg.toStream.to(Topic)

В чем преимущество преобразования KTable в поток передматериализация его результата в тему?

Разве мы не можем просто написать Stream.GrouBy.Agg.to(Topic)

Какая разница в значениях между 2?

EDIT1

Javadoc говорит, что to на Ktable устарел и что сначала рекомендуется преобразование в поток, а затем с использованием to.

Интересно, почему?

1 Ответ

2 голосов
/ 09 июля 2019

Согласно Javadoc , реализация метода KTable .to() соответствует приведенной ниже, где он вызывает .toStream() внутренне:

@SuppressWarnings("deprecation")
@Override
public void to(final String topic) {
    to(null, null, null, topic);
}

@SuppressWarnings("deprecation")
    @Override
    public void to(final Serde<K> keySerde,
                   final Serde<V> valSerde,
                   final StreamPartitioner<? super K, ? super V> partitioner,
                   final String topic) {
        this.toStream().to(keySerde, valSerde, partitioner, topic);
    }

Технически нет никакой разницы в обоих методах, описанных вышекаждый просто конвертирует KTable в KStream внутри, скрывая вызов метода .toStream(), тогда как в Stream.GrouBy.Agg.toStream.to(Topic) он вызывает .toStream() явно.

...