Skip to main content

Connect to Aiven for Apache Kafka® with command line tools

Learn how to send and receive messages from an Aiven for Apache Kafka® service using command-line tools.

Prerequisites​

The kafka-console-producer.sh and kafka-console-consumer.sh scripts are included in the open-source Apache Kafka® distribution, located in the bin directory.

For kafka-avro-console-producer, follow the installation steps in its GitHub repository or download the Confluent platform via the Tar archive option in the Quick Start for Confluent Platform. The kafka-avro-console-producer tool is also located in the bin directory of the Confluent archive.

note

The Confluent platform is not required to use the kafka-avro-console-producer tool with an Aiven for Apache Kafka service running Karapace.

To configure all three tools, see the Apache Kafka toolbox properties.

Variables​

VariableDescription
HOSTHost name for the connection
PORTPort number to use for the Kafka service
CONFIGURATION_PATHPath to your configuration file for Apache Kafka toolbox
SCHEMA_REGISTRY_HOSTHost name for your schema registry
SCHEMA_REGISTRY_PORTPort number for your schema registry
SCHEMA_REGISTRY_USERUser name for your schema registry
SCHEMA_REGISTRY_PWDPassword for your schema registry
TARGET_TOPICThe name of the Kafka topic to be written to/read from

In the command lines below, values in { and } are to be replaced - so {PORT} would be replaced by the appropriate port number, for instance 12345.

Produce messages​

Use kafka-console-producer to send multiple messages to your topic.

kafka-console-producer.sh --broker-list {HOST}:{PORT} \
--topic {TARGET_TOPIC} \
--producer.config {CONFIGURATION_PATH}

Once the connection is established, you can send messages one after another by typing them in the terminal. For example:

message1
message2

Produce messages with a schema​

Use kafka-avro-console-producer to produce messages with a schema by connecting to your schema registry.

note
  • The schema.registry.url must be a complete URL, typically starting with https://.
  • Aiven's Karapace is a compatible schema registry. To enable it for your Aiven for Apache Kafka® service, see Enable Karapace with Aiven for Apache Kafka®. The SCHEMA_REGISTRY_ values are available on the Schema Registry tab of the service's Overview page.
kafka-avro-console-producer --broker-list {HOST}:{PORT} \
--producer.config {CONFIGURATION_PATH} \
--topic {TARGET_TOPIC} \
--property value.schema='{"type":"record","name":"Test","fields":[{"name":"id","type":"string"}]}' \
--property schema.registry.url={SCHEMA_REGISTRY_HOST}:{SCHEMA_REGISTRY_PORT} \
--property basic.auth.credentials.source=USER_INFO \
--property basic.auth.user.info={SCHEMA_REGISTRY_USER}:{SCHEMA_REGISTRY_PASSWORD}

Once connected, you can send messages using the specified schema. For example:

{"id": "1"}

For more information on how to use kafka-avro-console-producer, see the Confluent developer documentation.

Consume messages​

Use kafka-console-consumer to read messages from your topic. To read from the beginning of the topic, run:

kafka-console-consumer.sh --bootstrap-server {HOST}:{PORT} \
--topic {TARGET_TOPIC} \
--consumer.config {CONFIGURATION_PATH} \
--from-beginning