Running Kafka Client (Optional)

Last updated: 2021-07-14 15:54:39

    Overview

    This document explains how to start using Kafka APIs after you purchase the CKafka service. After setting up a CKafka environment on a CVM instance, you need to download and decompress the Kafka installation file and perform simple testing on Kafka APIs.

    Directions

    Step 1. Install a JDK

    1. Check Java installation

    Open a terminal window and run this command:

    java -version
    

    If the Java version number is output, Java installation is successful. If Java has not been installed, please download and install the JDK.

    2. Set up the Java environment

    Set the JAVA_HOME environment variable and point it to the Java installation directory on your machine.
    For example, if you use Java JDK 1.8.0_20, the outputs on different operating systems are as follows:

    OS Output
    Windows Set the environment variable JAVA_HOME to
    C:\Program Files\Java\jdkjdk1.8.0_20
    Linux export JAVA_HOME=/usr/local/java-current
    Mac OSX export JAVA_HOME=/Library/Java/Home

    Add the Java compiler path to the system path:

    OS Output
    Windows Add ;C:\Program Files\Java\jdk1.8.0_20\bin to the end of the system variable PATH.
    Linux export PATH=$PATH:$JAVA_HOME/bin/
    Mac OSX not required

    Use the java -version command to check your Java installation.

    Step 2. Download the Kafka installation file

    Download and decompress the Kafka installation file.
    Currently, CKafka is fully compatible with Kafka 0.9, 0.10, 1.1, and 2.4. We recommend that you download one of these versions. This document uses kafka_2.12-1.1.1 as an example.

    Step 3. Test Kafka APIs

    1. Configure an ACL policy locally.

      1. In the ./config directory of the installation file, add the following content at the end of producer.properties and consumer.properties.

        security.protocol=SASL_PLAINTEXT 
        sasl.mechanism=PLAIN
        
      2. Create a file named ckafka_client_jaas.conf, and add the following content.

        KafkaClient {
            org.apache.kafka.common.security.plain.PlainLoginModule required
            username="yourinstance#yourusername"
            password="yourpassword";
        };
        
        Note:

        username is the combination of the instance ID + # + configured username, and password is the configured password.

      3. In the ./bin directory of the installation file, add the statement of the full path of the JAAS file at the beginning of kafka-console-producer.sh and kafka-console-consumer.sh.

        export KAFKA_OPTS="-Djava.security.auth.login.config=****/config/ckafka_client_jaas.conf"
        
    1. Go to the ./bin directory, and produce and consume a message via CLI commands.

      1. Open a terminal window to start the consumer.

        bash kafka-console-consumer.sh --bootstrap-server XXXX:port --topic XXXX --consumer.config ../config/consumer.properties
        
        Note:

        • broker-list: replace XXXX:port with the domain name and port for public network access, which can be obtained in the Access Mode section on the Instance Details page in the console.
        • topic: replace XXXX with the topic name, which can be obtained on the Topic Management page in the console.
      2. Open another terminal window to start the producer.

        bash kafka-console-producer.sh --broker-list XXXX:port --topic XXXX --producer.config ../config/producer.properties
        
        Note:

        • broker-list: replace XXXX:port with the domain name and port for public network access, which can be obtained in the Access Mode section on the Instance Details page in the console.
        • topic: replace XXXX with the topic name, which can be obtained on the Topic Management page in the console.

        Enter the content of the message, press Enter, and you can see that the consumer received the message almost at the same time.

        Producing a message:

        Consuming a message:

    2. In the message querying page of the CKafka console, query the message sent.

      The details of the message are as follows: