[ 
https://issues.apache.org/jira/browse/KAFKA-4633?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16040795#comment-16040795
 ] 

Andres Gomez Ferrer edited comment on KAFKA-4633 at 6/7/17 12:42 PM:
---------------------------------------------------------------------

Hi all,

I have some question about this issue. With this change, the Kafka Streams app 
doesn't auto-create topics, so you need to create the topics before start 
running the APP. This is ok if you create the input/output topics, but when you 
use the *through* method to do some repartition .. Do you need to create the 
topic before? Maybe this is a little strange, isn't?

I have seen the *through* method, and it works with *to(...)* and *stream(...)*

{code}
    @Override
    public KStream<K, V> through(Serde<K> keySerde, Serde<V> valSerde, 
StreamPartitioner<? super K, ? super V> partitioner, String topic) {
        to(keySerde, valSerde, partitioner, topic);

        return topology.stream(keySerde, valSerde, topic);
    }
{code}

What do you think? Maybe this is a new issue or Is normal that you need to 
create the topic that later you use in the *through* method?

Regards,
Andrés


was (Author: agomez):
Hi all,

I have some question about this issue. With this change, the Kafka Streams app 
doesn't auto-create topics, so you need to create the topics before start 
running the APP. This is ok if you create the input/output topics, but when you 
use the *through* method to do some repartition .. Do you need to create the 
topic before? Maybe this is a little strange, isn't?

I have seen the *through* method, and it works with *to(...)* and *stream(...)*

{code}
    @Override
    public KStream<K, V> through(Serde<K> keySerde, Serde<V> valSerde, 
StreamPartitioner<? super K, ? super V> partitioner, String topic) {
        to(keySerde, valSerde, partitioner, topic);

        return topology.stream(keySerde, valSerde, topic);
    }
{code}

What do you think? Maybe this is a new issue or Is normal that you need to 
create the topic that later you use in the * through* method?

Regards,
Andrés

> Always use regex pattern subscription to avoid auto create topics
> -----------------------------------------------------------------
>
>                 Key: KAFKA-4633
>                 URL: https://issues.apache.org/jira/browse/KAFKA-4633
>             Project: Kafka
>          Issue Type: Bug
>          Components: streams
>            Reporter: Guozhang Wang
>            Assignee: Guozhang Wang
>              Labels: architecture
>             Fix For: 0.10.2.0
>
>
> In {{KafkaConsumer}}, a metadata update is requested whenever 
> {{subscribe(List<String> topics ..)}} is called. And when such a metadata 
> request is sent to the broker upon the first {{poll}} call, it will cause the 
> broker to auto-create any topics that do not exist if the broker-side config 
> {{topic.auto.create}} is turned on.
> In order to work around this issue until the config is default to false and 
> gradually be deprecated, we will let Streams to always use the other 
> {{subscribe}} function with regex pattern, which will send the metadata 
> request with empty topic list and hence won't trigger broker-side auto topic 
> creation.
> The side-effect is that the metadata response will be larger, since it 
> contains all the topic infos; but since we only refresh it infrequently this 
> will add negligible overhead.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to