Hi Victoria,

Sorry for the vagueness, I’m not in front of a computer right now, so I can 
only answer from memory. 

I’m not sure why that interface is still tagged “evolving”. Any changes to it 
would go through a deprecation period, just like any public interface in Kafka. 
We should probably remove that annotation. 

Your questions are good ones. It seems like we should update the JavaDoc to 
clarify. My observation is that you do get the exception if the topic already 
exists, and I doubt that this API would change any configuration for 
already-present topics. In my usage, I’ve just caught that exception and 
ignored it. 

Thanks,
John

On Sun, Feb 16, 2020, at 13:12, Victoria Zuberman wrote:
> Hi, John
> 
> Thanks a lot for valuable information.
> I looked at KafkaAdminClient and I see that it offers createTopics 
> method that indeed seems suitable.
> 
> I still have a couple of questions:
> 
> 1. In the documentation it is not mentioned what is the expected 
> behavior if the specified topic already exists.
>      Will it fail?
>      Will it throw TopicExistsException exception?
>     If topic existed before createTopics was called will it remain 
> unchanged?
>     The behavior is not easily deduced  from KafkaAdminClient code 
> alone, I did try....
> 
> 2. I see that AdminClient is supported for a while now but API is still 
> marked as Evolving.
>     From version notes it seems that its basic functionality (like 
> createTopics) remains pretty stable.
>     Is it considered stable enough for production?
> 
> Thanks,
> Victoria
> 
> 
> On 16/02/2020, 20:15, "John Roesler" <vvcep...@apache.org> wrote:
> 
>     Hi Victoria,
> 
>     I’ve used the AdminClient for this kind of thing before. It’s the 
> official java client for administrative actions like creating topics. 
> You can create topics with any partition count, replication, or any 
> other config.
> 
>     I hope this helps,
>     John
> 
>     On Sat, Feb 15, 2020, at 22:41, Victoria Zuberman wrote:
>     > Hi,
>     >
>     > I have an application based on Kafka Streams.
>     > It reads from Kafka topic (I call this topic “input topic”).
>     > That topic has many partitions and their number varies based on 
> the env
>     > in which application is running.
>     > I don’t want to create different input topics manually.
>     > Configuration of auto.create.topics.enable and num.partitions is 
> not
>     > enough for me.
>     > The solution I am looking to implement is to check during 
> application
>     > init whether the input topic exists and if not to create it with
>     > relevant partition number and replication factor.
>     >
>     > I found the following example that uses kafka.admin.AdminUtils 
> and it
>     > seems to be suitable:
>     > 
> https://www.codota.com/code/java/methods/kafka.admin.AdminUtils/createTopic
>     >
>     > Please advise whether using AdminUtils is considered a good 
> practice.
>     > Is AdminUtils functionality considered stable and reliable?
>     > If there are other solutions, I would appreciate to hear about 
> them.
>     >
>     > Thanks,
>     > Victoria
>     >
>     > -------------------------------------------
>     > NOTICE:
>     > This email and all attachments are confidential, may be 
> proprietary,
>     > and may be privileged or otherwise protected from disclosure. 
> They are
>     > intended solely for the individual or entity to whom the email is
>     > addressed. However, mistakes sometimes happen in addressing 
> emails. If
>     > you believe that you are not an intended recipient, please stop 
> reading
>     > immediately. Do not copy, forward, or rely on the contents in any 
> way.
>     > Notify the sender and/or Imperva, Inc. by telephone at +1 (650)
>     > 832-6006 and then delete or destroy any copy of this email and its
>     > attachments. The sender reserves and asserts all rights to
>     > confidentiality, as well as any privileges that may apply. Any
>     > disclosure, copying, distribution or action taken or omitted to be
>     > taken by an unintended recipient in reliance on this message is
>     > prohibited and may be unlawful.
>     > Please consider the environment before printing this email.
>     >
> 
> 
> -------------------------------------------
> NOTICE:
> This email and all attachments are confidential, may be proprietary, 
> and may be privileged or otherwise protected from disclosure. They are 
> intended solely for the individual or entity to whom the email is 
> addressed. However, mistakes sometimes happen in addressing emails. If 
> you believe that you are not an intended recipient, please stop reading 
> immediately. Do not copy, forward, or rely on the contents in any way. 
> Notify the sender and/or Imperva, Inc. by telephone at +1 (650) 
> 832-6006 and then delete or destroy any copy of this email and its 
> attachments. The sender reserves and asserts all rights to 
> confidentiality, as well as any privileges that may apply. Any 
> disclosure, copying, distribution or action taken or omitted to be 
> taken by an unintended recipient in reliance on this message is 
> prohibited and may be unlawful.
> Please consider the environment before printing this email.
>

Reply via email to