Updated on 2024-10-10 GMT+08:00

Deleting a Kafka Topic

Delete a topic using either of the following methods:

Prerequisites

  • A Kafka instance has been created, and a topic has been created in this instance.
  • The instance is in the Running state.

Constraint

If your Kafka instances are connected using Logstash, stop Logstash before deleting topics. Otherwise, services may crash.

Deleting a Kafka Topic (Console)

  1. Log in to the console.
  2. Click in the upper left corner to select a region.

    Select the region where your Kafka instance is located.

  3. Click and choose Middleware > Distributed Message Service (for Kafka) to open the console of DMS for Kafka.
  4. Click the desired Kafka instance to view the instance details.
  5. In the navigation pane, choose Topics.
  6. Delete topics using either of the following methods:

    • Select one or more topics and click Delete Topic in the upper left corner.
    • In the row containing the topic you want to delete, choose More > Delete.

  7. In the Delete Topic dialog box that is displayed, click OK to delete the topic.

Deleting a Kafka Topic on the Client

If your Kafka client version is later than 2.2, you can use kafka-topics.sh to delete topics.

For an instance with ciphertext access enabled, if allow.everyone.if.no.acl.found is set to false, topics cannot be deleted through the client.

  • For a Kafka instance with ciphertext access disabled, run the following command in the /bin directory of the Kafka client:
    ./kafka-topics.sh --bootstrap-server ${connection-address} --delete --topic ${topic-name}

    Parameter description:

    • connection-address: can be obtained from the Connection area on the Basic Information page on the Kafka console.
    • topic-name: topic name.

    Example:

    [root@ecs-kafka bin]# ./kafka-topics.sh --bootstrap-server 192.168.xx.xx:9092,192.168.xx.xx:9092,192.168.xx.xx:9092 --delete --topic topic-01
    [root@ecs-kafka bin]#
  • For a Kafka instance with ciphertext access enabled, do as follows:
    1. (Optional) Modify the client configuration file.
      View Security Protocol in the Connection area on the Basic Information page on the Kafka console. The configuration settings vary depending on the protocol.
      • SASL_PLAINTEXT: Skip this step and go to 2 if the username and password are already set. Otherwise, create the ssl-user-config.properties file in the /config directory on the Kafka client and add the following content to the file:
        security.protocol=SASL_PLAINTEXT
        # If the SASL mechanism is SCRAM-SHA-512, configure as follows:
        sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \
        username="**********" \
        password="**********";        
        sasl.mechanism=SCRAM-SHA-512
        # If the SASL mechanism is PLAIN, configure as follows:
        sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
        username="**********" \
        password="**********";        
        sasl.mechanism=PLAIN

        Parameter description: username and password are the ones you set when enabling ciphertext access for the first time or when creating a user.

      • SASL_SSL: Skip this step and go to 2 if the username, password, and SSL certificate are already set. Otherwise, create the ssl-user-config.properties file in the /config directory on the Kafka client and add the following content to the file:
        security.protocol=SASL_SSL
        ssl.truststore.location={ssl_truststore_path}
        ssl.truststore.password=dms@kafka
        ssl.endpoint.identification.algorithm=
        # If the SASL mechanism is SCRAM-SHA-512, configure as follows:
        sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \
        username="**********" \
        password="**********";        
        sasl.mechanism=SCRAM-SHA-512
        # If the SASL mechanism is PLAIN, configure as follows:
        sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
        username="**********" \
        password="**********";        
        sasl.mechanism=PLAIN

        Parameter description:

        • ssl.truststore.location: path for storing the client.jks certificate. Even in Windows, you need to use slashes (/) for the certificate path. Do not use backslashes (\), which are used by default for paths in Windows. Otherwise, the client will fail to obtain the certificate.
        • ssl.truststore.password: server certificate password, which must be set to dms@kafka and cannot be changed.
        • ssl.endpoint.identification.algorithm: whether to verify the certificate domain name. This parameter must be left blank, which indicates disabling domain name verification.
        • username and password: username and password you set when enabling ciphertext access for the first time or when creating a user.
    2. Run the following command in the /bin directory of the Kafka client:
      ./kafka-topics.sh --bootstrap-server ${connection-address} --delete --topic ${topic-name} --command-config ../config/ssl-user-config.properties

      Parameter description:

      • connection-address: can be obtained from the Connection area on the Basic Information page on the Kafka console.
      • topic-name: topic name.

      Example:

      [root@ecs-kafka bin]# ./kafka-topics.sh --bootstrap-server 192.168.xx.xx:9093,192.168.xx.xx:9093,192.168.xx.xx:9093 --delete --topic topic-01 --command-config ../config/ssl-user-config.properties
      [root@ecs-kafka bin]#