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

RivenSun edited comment on KAFKA-13398 at 10/25/21, 10:22 AM:
--------------------------------------------------------------

I observed that KafkaAdminClient in Kafka-clients 3.0.0 version added two new 
methods.
 *alterPartitionReassignments* and *alterConsumerGroupOffsets*, which allows me 
to stop using *ReassignPartitionsCommand* and *ConsumerGroupCommand*, but I did 
not see any restrictions on the broker version in the comments of these two 
methods.
 Can I use KafkaAdminClient of version 3.0.0 to initiate requests for these two 
methods to brokers of 2.5.0 (or lower versions)?


was (Author: rivensun):
I observed that KafkaAdminClient in Kafka-clients 3.0.0 version added two new 
methods.
alterPartitionReassignments and alterConsumerGroupOffsets, which allows me to 
stop using ReassignPartitionsCommand and ConsumerGroupCommand, but I did not 
see any restrictions on the broker version in the comments of these two methods.
Can I use KafkaAdminClient of version 3.0.0 to initiate requests for these two 
methods to brokers of 2.5.0 (or lower versions)?

> The caller program will be shut down directly when the execution of Kafka 
> script is abnormal
> --------------------------------------------------------------------------------------------
>
>                 Key: KAFKA-13398
>                 URL: https://issues.apache.org/jira/browse/KAFKA-13398
>             Project: Kafka
>          Issue Type: Improvement
>          Components: admin
>    Affects Versions: 3.0.0
>            Reporter: RivenSun
>            Priority: Major
>
> hello [~showuon] and [~guozhang]
> Kafka has some key functions that have not yet been integrated into 
> Java-AdminClient, so I have to use some Scala classes in the Kafka Server 
> `kafka.admin` package in my java program, such as: 
> `ReassignPartitionsCommand`, `ConsumerGroupCommand` (reset group offsets), 
> `ConfigCommand` and etc., to call their `*main(args: Array[String])*` methods 
> in order to achieve specific functions.
> *Problem*:
> 1. In different Kafka versions, these Scala classes may have different 
> requirements for input parameters, or they may have different treatments for 
> the results of command execution.
>  1) `ReassignPartitionsCommand` requires  --bootstrap-server is required in 
> the latest high version,
> but requires --zookeeper in the low version.
>  Once the parameter verification fails, the *Exit.exit(1, Some(message))* 
> method will be called, which will cause my process to shut down directly.
>  2) In Kafka 3.0.0 version, there is this code at the end in the `*main(args: 
> Array[String])*` method of `ReassignPartitionsCommand`
> {code:java}
> // If the command failed, exit with a non-zero exit code.
>  if (failed) {
>  Exit.exit(1)
>  }{code}
> This will also make my process shut down directly
> So I hope that the Kafka community will be able to print out the reason and 
> stack of the corresponding exception when the parameter verification fails or 
> the execution command is abnormal, and then return from the `*main(args: 
> Array[String])*` method of the command, but don't call `*Exit.exit(...)*` 
> method. Of course, when the script is executed on the machine, there is no 
> problem with exiting directly.
> 2. At present, it seems that only scripts can be used to add/update/delete 
> SCRAM credentials for users, eg:
> {code:java}
> > bin/kafka-configs.sh --zookeeper localhost:2182 --zk-tls-config-file 
> > zk_tls_config.properties --alter 
> > --add-config'SCRAM-SHA-256=[iterations=8192,password=alice- 
> > secret],SCRAM-SHA-512=[password=alice-secret]' --entity-type users 
> > --entity-name alice{code}
> In Kafka 3.0.0 version, the `alterUserScramCredentials` method in 
> `KafkaAdminClient` does not support calling yet, and the 
> `AltUserScramCredentialsOptions` parameter is modified by the annotation 
> @InterfaceStability.Evolving. So I currently have to use `ConfigCommand` to 
> achieve this function, but `ConfigCommand` also has the same logic: 
> *Exit.exit( ...)*.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to